我已經繼承了要維護的軟件。以前的版本使用第三方Datagridview替代品,它與Vista中的Windows版本不兼容。在試圖將Datagridviews放入時,我遇到了連接到數據庫的問題。打開SQL連接
我想製作一個小程序,在原始軟件之外連接和選擇,以便我可以進一步瞭解我在做什麼,而無需通過使用原始軟件進行測試的全過程點。
Private Shared Function GetData(ByVal sqlCommand As String) As DataTable
Dim table As New DataTable()
Dim connectionString As String = "Data Source=.\SQLExpress;Integrated Security=true;" _
& "AttachDbFilename=C:blah\blah\blah.mdf;User Instance=true;"
Using con = New SqlConnection(connectionString)
Using command = New SqlCommand(sqlCommand, con)
Using da = New SqlDataAdapter(command)
da.Fill(table)
End Using
End Using
End Using
Return table
End Function
我的SQL命令是一個簡單的「SELECT * FROM設置」,該計劃的其餘部分的形式加載,進口,和DataGridView的格式。我不認爲它會影響SQL部分,並且在這裏包含會很麻煩。
這會導致看起來是封閉的連接。
![連接屬性] http://i.imgur.com/b5V3Qy5.png
這是我的SQLExpress截圖可能幫助診斷連接問題。
![SQL屬性] http://i.imgur.com/bakBq5D.png
我在灰色模糊了計算機的名稱,但我也注意到,有粉紅色的另一臺計算機的名字。我不知道這是什麼意思,除了這個數據庫最初是在另一臺計算機上創建的,並且已被複制和粘貼。
最後,這是在連接字符串所使用的原始軟件:
"Data Source=.\SQLExpress;AttachDbFilename=C:\blah\blah\blah.mdf;Trust_Connection=Yes;"
我也有嘗試:
"Data Source=.\SQLExpress;AttachDbFilename=C:\blah\blah\blah.mdf;Trusted_Connection=Yes;User Instance=true"
最後,這是我的例外:
"An attempt to attach an auto-named database for file C:\blah\blah\blah.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share."
我從www.connectionstrings.com獲得了我的備用連接字符串。
你需要填充數據表 – Ric
前打開連接我接着說:con.Open()'和我仍然得到同樣的例外只有更快。 – ZL1Corvette
從MSDN - > _如果Fill方法發現連接尚未打開,則隱式地打開DataAdapter正在使用的Connection。如果填充打開了連接,填充完成後它也將關閉連接._ – Steve