2009-09-11 30 views
2

我正在設計ASP.NET和VS2008中的Web服務,並使用類型化數據集來檢索表數據。這些工作良好,並通過其關聯的TableAdapter對象建立自己的連接。編輯:我使用VB,順便說一句!建立與ADO.NET命令對象一起使用的連接的最佳方法

我現在試圖使用DataAdapter和Command對象來運行自定義SQL字符串,但是我需要引用Connection對象才能使Command正常工作。處理這個問題的最好方法是什麼?我應該:

a)使用Global.asax創建全局連接對象,從web.config中檢索連接字符串? (我已經嘗試過那個,沒有太多的成功)

b)使用InitialiseComponent方法創建一個類級別的連接對象,同時從web.config中檢索ConnectionString?

c)從我已經在我的類型化數據集中創建的TableAdapter之一檢索一個連接?

d)還有什麼我還沒有想到的?

順便說一句我一直覺得很難從web.config中提取一個ConnectionString,所以任何幫助也將不勝感激!

我並不完全沒有ASP.NET的經驗,但我最後一個大項目使用VS2003,我想確保我正確使用當前工具。

回答

3

要提取連接字符串,使用

WebConfigurationManager.ConnectionStrings["name"].ConnectionString 

這是最好的打開和關閉連接儘可能接近它們的用途。 ADO.NET會做連接池,使這不會是昂貴的:

var connectionString = 
    WebConfigurationManager.ConnectionStrings["name"].ConnectionString; 
using (SqlConnection conn = new SqlConnection(connectionString)) 
{ 
    using (SqlCommand cmd = new SqlCommand("query", conn)) 
    { 
     conn.Open(); 

     // Use the command 
    } 
} 
+0

OK,感謝您的建議是位 - 我在想,一個全球性的連接是否更有效與否。我忘了提及我使用VB,但我想我可以翻譯! – Billious 2009-09-11 07:36:22

1

對於連接和數據訪問的問題,我會建議你使用某種數據傭工去像Microsoft Data Access Application Block

Here可以找到關於如何使用它的小教程。

爲了得到從web.config中使用的ConnectionString如下因素方法

public static string GetConnectionString(string strConstringKey) 
     { 
      return ConfigurationManager.ConnectionStrings[strConstringKey]; 
     } 

     public static bool GetConnectionString(string strConstringKey, ref string strConstring) 
     { 
      return (strConstring = ConfigurationManager.ConnectionStrings[strConstringKey]) == null ? false : true ; 
     } 
+0

謝謝 - 您檢索連接字符串的語法變成了可以工作的語法。投票表決,因爲我不能接受兩個答案! – Billious 2009-09-11 08:37:26

+0

此外,我正在檢查您提供的鏈接 - 忘記提及。 – Billious 2009-09-11 08:39:24

+0

歡迎大家...高興地幫忙:) – Mahin 2009-09-11 08:48:41

相關問題