2012-12-05 86 views
1

我正在幫助一位正在上大學的朋友做她的業務作業。該課程教授VB.NET和ADO.NET(當然非常糟糕)。我只通過我在工作中支持的遺留應用程序對ADO.NET有簡短的經驗。在沒有明確打開連接的情況下連接到數據庫

她試圖實現的頁面非常簡單:一個輸入爲usernamepasswordsubmit按鈕的窗體。有一些功能問題,但在查看代碼時,我注意到一些奇怪的東西。這是她用在頁面的頂部設置連接

Public Shared Con As New SqlConnection("Data Source = asdfa; Initial Catalog= asdf; Persist Security Info = True; User ID= dfasdf; Password = asdf") 
Public Shared strSQLStatement As String 
Public Shared strSQLStatementCmd As String 
Public Shared daActivity As New SqlDataAdapter(strSQLStatement, Con) 
Public Shared dsActivity As New DataSet 

我沒有看到任何東西的con.open()的聲音,因爲我預料的代碼。據我所知,ADO.NET需要這樣一個命令來初步建立連接。我向她詢問這件事,她提到她從未使用open()命令在她的任何其他家庭作業中建立連接,她完全信任她。這段代碼中是否有自動爲我打開連接的東西?

也許我對ADO.NET的理解是可以理解的。請糾正我,如果我錯了,但語言純粹是用來連接到數據庫,並以這種方式

Set up connection string 
Open connection 
Create sql strings, such as command = "select * from table1" 
Tell the open connection to run that sql 
Close Connection 

確實似乎有關的權利如此做?幫助我幫助她。

感謝

+0

您發佈的內容中沒有任何內容需要打開連接。哪裏是使用它的代碼。例如dsActivity.Fill? –

回答

3

SqlDataAdapter將自動打開和關閉你的連接。

Fill方法使用由相關聯的SelectCommand屬性中指定的SELECT語句 數據源中檢索行。與SELECT語句關聯的連接對象 必須有效, 但它不需要打開。如果連接在 之前關閉,則會調用填充以檢索數據,然後關閉。如果在調用Fill之前 連接已打開,它將保持打開狀態。

http://msdn.microsoft.com/en-us/library/905keexk.aspx

+0

感謝您的快速響應。我正在閱讀SqlDataAdapter的文檔。當該命令運行時,查詢實際上並未正確執行?我需要使用'fill'。是否可以更改與該對象關聯的sql命令字符串?我很抱歉,因爲我通常只是自己嘗試這種方式,但目前無法獲得這種可用的環境。 – Jeff

+0

'Fill'將執行'SelectCommand',您可以根據需要進行修改。 –

0

昏暗MovingDA作爲新OleDbDataAdapter的(sqlbyworknum,MyConnection的) MovingDA.Fill(MovingDT)

只是你用新的declraing DA,並通過SQL和你的連接將運行結束並運行

相關問題