试试这个指令:
1)创建一个新的Windows窗体应用程序。
2)添加数据源(选择一个数据库文件,如SqlDatabase.mdf)到您的项目中。
3)拖动&将DataGridView1拖放到Form1上,并使用| DataDirectory |数据库连接字符串的路径。
Imports System.Data.SqlClient
Public Class Form1
'Binding database table to DataGridView
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim con As SqlConnection = New SqlConnection("Data Source=.;Integrated Security=True;AttachDbFilename=|DataDirectory|\SqlDatabase.mdf")
Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM Table1", con)
con.Open()
Dim myDA As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim myDataSet As DataSet = New DataSet()
myDA.Fill(myDataSet, "MyTable")
DataGridView1.DataSource = myDataSet.Tables("MyTable").DefaultView
con.Close()
con = Nothing
End Sub
End Class
4)在Solution Explorer中选择SqlDatabase.mdf文件,并查看其属性:
确保“生成操作”属性设置为“内容”。
“复制到输出目录”属性设置为“复制如果更新”。
5)项目属性 - >发布选项卡 - >按“应用程序文件”按钮
检查列表中的数据库文件,并确保它的“发布状态”设置为“数据文件(自动)”和“下载组”设置为“(必填)”。
6)项目属性 - >发布标签 - >点击“发布”按钮来发布你的应用程序来生成一个Setup.exe文件。
安装Setup.exe文件,数据库文件将与应用程序一起部署到应用程序安装文件夹的“Data”文件夹中。 exe.config文件也将与应用程序安装文件夹一起部署。
Original source
将文件移动到主项目? – ErikEJ
@ErikEJ - 如果和我一样,“其他项目”被两个不同的项目引用,那么这是行不通的。例如,我有一个ClickOnce项目,它只是一个小GUI,但需要使用SqlCe文件访问该常见DLL,以及另一个需要访问该常见DLL和SqlCe文件的大型应用程序。这是将它们分解成不同的程序集的重点。 –