[英]SQL connection to database repeating
好的,現在我正在使用SQL數據庫從不同的表中獲取值...所以我建立了連接並獲取了這樣的值:
DataTable dt = new DataTable();
SqlConnection connection = new SqlConnection();
connection.ConnectionString = ConfigurationManager.ConnectionStrings["XYZConnectionString"].ConnectionString;
connection.Open();
SqlCommand sqlCmd = new SqlCommand("SELECT * FROM Machines", connection);
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
sqlCmd.Parameters.AddWithValue("@node", node);
sqlDa.Fill(dt);
connection.Close();
所以這是頁面上的一個查詢,我正在頁面上調用許多其他查詢。
所以我是否需要每次都打開和關閉連接... ???
如果不是,這部分也很常見:
DataTable dt = new DataTable();
SqlConnection connection = new SqlConnection();
connection.ConnectionString = ConfigurationManager.ConnectionStrings["XYZConnectionString"].ConnectionString;
connection.Open();
我可以喜歡將它放在一個函數中,而是調用它嗎..代碼看起來更干凈...我嘗試這樣做,但出現類似以下錯誤:
當前上下文中不存在連接。
有什么建議么???
謝謝
我使用“使用”。 您可以在內部包含任意數量的查詢。 完成后,它將為您清理。
using (SqlConnection cn = new SqlConnection(connectionString))
{
using (SqlCommand cm = new SqlCommand(commandString, cn))
{
cn.Open();
cm.ExecuteNonQuery();
}
}
通常,是的,您為多個行集建立單獨的連接。
如果可以使用聯接來生成單個有意義的行集,那么通常最好在服務器端而不是客戶端上做。
您可能還希望查看建立多個連接並使用異步功能,以便同時而不是按順序對所有請求進行排隊-請參閱本文 。
不,您不必每次都使用相同的數據庫打開和關閉連接。 您需要更改的是
sqlCommand's queryString every time.
就像@durilai所說的那樣,[ using
]是有用的。 Using
實際上具有比這更多的功能,但是從本質上講,它在代碼周圍放置了一個try / catch塊,並在這種情況下調用dispose來關閉連接。
任何需要打開/關閉的東西都可以與using一起使用,因此諸如文本編寫器或其他對象之類的東西也可以使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.