試試這個指令:
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文件的大型應用程序。這是將它們分解成不同的程序集的重點。 –