Vb.net visual studio 2019如何知道导入和路径设置的引用

Vb.net visual studio 2019如何知道导入和路径设置的引用,vb.net,sqlite,path,reference,Vb.net,Sqlite,Path,Reference,我创建了一个Visual Studio 2019项目,该项目使用FileSystem.FileExists以及StreamWriter和StreamReader 我还创建了一个名为Resource的文件夹,目的是在该文件夹中创建一个txt文件 我知道我需要告诉作者和读者在哪里可以找到文件,所以我使用了这些代码行 Dim path As String = "C:/Users/Me/source/repos/TestForms/TestForms/Resource/" If Not My.Compu

我创建了一个Visual Studio 2019项目,该项目使用FileSystem.FileExists以及StreamWriter和StreamReader
我还创建了一个名为Resource的文件夹,目的是在该文件夹中创建一个txt文件

我知道我需要告诉作者和读者在哪里可以找到文件,所以我使用了这些代码行

Dim path As String = "C:/Users/Me/source/repos/TestForms/TestForms/Resource/"
If Not My.Computer.FileSystem.FileExists(path & "Check.txt") Then
因为我还不完全了解如何处理SQLite数据库,所以假设我将数据库放在文件夹资源中。如果我制作了一个将在另一台计算机上运行的EXE程序包,那么根据我的猜测,字符串路径将无法工作
在学习的过程中,我一直看到这行代码。我看不到数据库的路径

m_dbConnection = New SQLiteConnection("Data Source=MyDatabase.sqlite; Version=3;")
当然,我现在正在处理一个txt文件,但如果它是SQLite数据库文件
我的问题是连接如何知道数据库在哪里?

我还需要导入此参考导入系统。IO
来自NetBeans的我被自动导入宠坏了

第二个问题VS 2019没有自动导入功能吗?

我正在添加解决方案探索的屏幕截图
试图将资源文件夹添加到无法正常工作的资源中

下面的流读取器代码没有错误

    Private Sub btnRead_Click(sender As Object, e As EventArgs) Handles btnRead.Click
    readDATA()
End Sub

Private Sub readDATA()
    Dim line As String
    Using reader As New StreamReader(path & "Check.txt", True)
        line = reader.ReadToEnd.Trim
        tbHaveOne.Text = line
    End Using
End Sub
创建Check.txt的代码

    Private Sub frmThree_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    haveFILE()
    'tbHaveTwo.Text = frmOne.vR'KEEP see frmOne
    'tbHaveOne.Select()
End Sub

Public Sub haveFILE()
    'If My.Computer.FileSystem.FileExists(path & "Check.txt") Then
    '    MsgBox("File found.")
    'Else
    '    MsgBox("File not found.")
    'End If
    If Not My.Computer.FileSystem.FileExists(path & "Check.txt") Then
        ' Create or overwrite the file.
        Dim fs As FileStream = File.Create(path & "Check.txt")
        fs.Close()
        tbHaveTwo.Text = "File Created"
        tbHaveOne.Select()
    Else
        tbHaveTwo.Text = "File Found"
        tbHaveOne.Select()
    End If

End Sub

您几乎不应该硬编码绝对路径。如果要引用程序文件夹下的路径,请使用
Application.StartupPath
作为根路径和相对路径,例如

Dim filePath=Path.Combine(Application.StartupPath,“Resource\Check.txt”)
那么从哪里运行程序就无关紧要了。对于其他标准文件夹路径,应使用
Environment.GetFolderPath
My.Computer.FileSystem.specialDirectory
。对于非标准路径,应允许用户使用
FolderBrowserDialog
OpenFileDialog
SaveFileDialog
进行选择,然后,如果合适,将该路径保存到设置或类似设置中

对于数据库连接字符串,一些ADO.NET提供程序支持在数据文件路径中使用“| DataDirectory |”,并在运行时替换。替换什么取决于应用程序的类型和部署方式。对于Web表单应用程序,它解析为App_数据文件夹。对于ClickOnce Windows应用,它解析为专用数据文件夹。对于其他Windows应用程序,它解析为程序文件夹,就像
Application.StartupPath
。我认为SQLite提供程序支持它,但我不是100%确定。如果有,您可以使用以下内容:

m|u dbConnection=New SQLiteConnection(“数据源=| DataDirectory |\Resource\MyDatabase.sqlite;版本=3;”)
编辑:

如果在解决方案资源管理器中将数据文件添加到项目中,并且希望这些文件成为已部署应用程序的一部分,则需要对其进行配置以实现这一点。在解决方案资源管理器中选择该文件,然后将
生成操作
设置为
内容
,将
复制到输出目录
属性设置为
始终复制
,或者,如果您打算在应用程序运行时对文件进行更改,
如果更新,则复制

生成时,该文件将与EXE一起从项目源文件夹复制到输出文件夹。然后,您可以在运行时使用
Application.StartupPath
访问它。这意味着在调试期间以及部署之后,因为它将被复制到“\bin\Release”输出文件夹以及“\bin\Debug”输出文件夹。如果将该文件添加到解决方案资源管理器中的文件夹中,则该文件将被复制到,因此,我前面提到使用该文件的原因如下:

Dim filePath=Path.Combine(Application.StartupPath,“Resource\Check.txt”)

您几乎不应该硬编码绝对路径。如果要引用程序文件夹下的路径,请使用
Application.StartupPath
作为根路径和相对路径,例如

Dim filePath=Path.Combine(Application.StartupPath,“Resource\Check.txt”)
那么从哪里运行程序就无关紧要了。对于其他标准文件夹路径,应使用
Environment.GetFolderPath
My.Computer.FileSystem.specialDirectory
。对于非标准路径,应允许用户使用
FolderBrowserDialog
OpenFileDialog
SaveFileDialog
进行选择,然后,如果合适,将该路径保存到设置或类似设置中

对于数据库连接字符串,一些ADO.NET提供程序支持在数据文件路径中使用“| DataDirectory |”,并在运行时替换。替换什么取决于应用程序的类型和部署方式。对于Web表单应用程序,它解析为App_数据文件夹。对于ClickOnce Windows应用,它解析为专用数据文件夹。对于其他Windows应用程序,它解析为程序文件夹,就像
Application.StartupPath
。我认为SQLite提供程序支持它,但我不是100%确定。如果有,您可以使用以下内容:

m|u dbConnection=New SQLiteConnection(“数据源=| DataDirectory |\Resource\MyDatabase.sqlite;版本=3;”)
编辑:

如果在解决方案资源管理器中将数据文件添加到项目中,并且希望这些文件成为已部署应用程序的一部分,则需要对其进行配置以实现这一点。在解决方案资源管理器中选择该文件,然后将
生成操作
设置为
内容
,将
复制到输出目录
属性设置为
始终复制
,或者,如果您打算在应用程序运行时对文件进行更改,
如果更新,则复制

生成时,该文件将与EXE一起从项目源文件夹复制到输出文件夹。然后,您可以使用
Application.StartupPath    Private Sub frmThree_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    haveFILE()
End Sub

Public Sub haveFILE()
    If Not System.IO.File.Exists(filePath) Then
        System.IO.File.Create(filePath).Dispose()
        tbHaveTwo.Text = "File Created"
        tbHaveOne.Select()
    Else
        My.Computer.FileSystem.FileExists(filePath) ' Then
        tbHaveTwo.Text = "File Found"
        tbHaveOne.Select()
    End If
    'This line of code created the File this was in the Bin > Debug folder Check.txtCheck.txt
    'If Not My.Computer.FileSystem.FileExists(filePath & "Check.txt") Then

End Sub
Sub PlaySystemSound()
    My.Computer.Audio.PlaySystemSound(
    System.Media.SystemSounds.Hand)
End Sub
Private Sub btnWrite_Click(sender As Object, e As EventArgs) Handles btnWrite.Click
    If tbHaveOne.Text = "" Then
        PlaySystemSound()
        'MsgBox("Please enter a username.", vbOKOnly, "Required Data")
        'If MsgBoxResult.Ok Then
        '    Return
        'End If
        Const Title As String = "To EXIT Click OK"
        Const Style = vbQuestion
        Const Msg As String = "Enter Data" + vbCrLf + vbNewLine + "Then Write Data"
        Dim result = MsgBox(Msg, Style, Title)
        If result = vbOK Then
            'MsgBox("Enter Data")

            tbHaveOne.Select()
            Return
        End If
    End If
    writeDATA()
End Sub

Private Sub writeDATA()
    Dim file As System.IO.StreamWriter
    file = My.Computer.FileSystem.OpenTextFileWriter(filePath, True)
    file.WriteLine(tbHaveOne.Text)
    file.Close()
    tbHaveOne.Clear()
    tbHaveTwo.Text = "Data Written"
End Sub

Private Sub btnRead_Click(sender As Object, e As EventArgs) Handles btnRead.Click
    readDATA()
End Sub

Public Sub readDATA()
    Dim fileReader As String
    fileReader = My.Computer.FileSystem.ReadAllText(filePath)
    tbHaveOne.Text = fileReader
End Sub