該應用程序在我的開發盒上工作正常,但我把它帶到最終用戶的計算機,它給出了這個錯誤。我發佈了它並將其安裝在目標計算機上。CLR20r3 System.Data.SqlClient.Sql C#應用程序
SqlConnection cs = new SqlConnection("SERVER=SERVERWITHDB;DATABASE=DATABASENAME;Trusted_Connection=True");
這是設置sql連接的正確方法嗎?
該應用程序在我的開發盒上工作正常,但我把它帶到最終用戶的計算機,它給出了這個錯誤。我發佈了它並將其安裝在目標計算機上。CLR20r3 System.Data.SqlClient.Sql C#應用程序
SqlConnection cs = new SqlConnection("SERVER=SERVERWITHDB;DATABASE=DATABASENAME;Trusted_Connection=True");
這是設置sql連接的正確方法嗎?
如果您需要構建連接字符串代碼中(而不是在你的exe.config文件中配置它),你可以使用一個SqlConnectionStringBuilder
:
SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder
{
DataSource = "SERVERWITHDB",
InitialCatalog = "DATABASENAME",
IntegratedSecurity = true
};
SqlConnection cs = new SqlConnection(connectionStringBuilder.ToString());
你會看到,在連接字符串你在你的問題中顯示使用錯誤的關鍵詞。爲SqlConnection
有效的連接字符串看起來是這樣的:
SqlConnection cs = new SqlConnection("Data Source=SERVERWITHDB;Initial Catalog=DATABASENAME;Integrated Security=True");
所以關鍵詞是:
Data Source
數據庫服務器名稱Initial Catalog
數據庫使用Integrated Security
設爲用於Windows身份驗證的True
以及用於SQL服務器身份驗證的False
User ID
用戶名(僅適用於SQL Server身份驗證)Password
輸入密碼(僅限SQL Server身份驗證)我仍然得到以下錯誤: 問題事件名稱:CLR20r3 問題簽名01:POC1.exe 問題簽名02:1.0.0.0 問題簽名03:56f1509c 問題簽名04:System.Data 問題簽名05:4.0 .30319.34209 問題簽名06:53489aad 問題簽名07:25bd 問題簽名08:27 問題簽名09:System.Data.SqlClient.Sql –
那麼這個錯誤消息不會告訴我很多。我不認爲這是來自您的連接字符串。我建議爲你的代碼添加一些更多的錯誤處理(例如db操作周圍的'try/catch'塊)並記錄異常(包括堆棧跟蹤!)。然後用必要的信息更新你的問題,或者問一個新的問題,如果這是一個完全不同的錯誤。 –
你需要檢查網絡用戶有權訪問SQL服務器(你的集成安全是設置爲true)。
不,請從exe.config文件讀取連接字符串,不要在代碼中對其進行硬編碼。順便說一句,有什麼錯誤? – Steve