2012-02-09 58 views
1

我在本地機器上開發了一個winforms應用程序。它從csv文件讀取數據並從數據庫中查找相關信息(通過執行存儲的proc)。將.net項目部署到開發服務器

我把它移到開發服務器上,並試着運行它,但是當我在從app.config文件中獲取SQL連接字符串的那一行出現錯誤。錯誤是:System.NullReferenceException:未將對象引用設置爲對象的實例。。當然,該應用在我的機器上運行良好。

我註釋了此代碼後面的所有行,並顯示錯誤消息。我猜它與conn.ConnectionString行有關。

SQL數據庫指向正確的數據庫服務器& UID & pwd是正確的。什麼會導致錯誤?

try 
    { 
     using (SqlConnection conn = new SqlConnection()) 
     { 
      conn.ConnectionString = ConfigurationManager.ConnectionStrings["SilverTicker"].ConnectionString; 
+0

編寫一個簡單的應用程序,只需連接到數據庫並將其放置在開發服務器上即可。如果失敗,您可能無法通過您的開發服務器訪問數據庫服務器。 – 2012-02-09 14:47:48

回答

4

代碼示例中的一個對象返回「null」。我猜這是

ConfigurationManager.ConnectionStrings["SilverTicker"].ConnectionString 

放在該行斷點和檢查.ConnectionStrings集合的內容,以確保它包含「SilverTicker」。

我猜ConfigurationManager.ConnectionStrings["SilverTicket"]是未定義的(可能是因爲兩個環境中的app.config不一致),所以訪問它的.ConnectionString屬性會拋出異常。

+0

解決方案是使用settings.settings接口創建connectionstring。謝謝(你的)信息。 – user1111955 2012-02-09 18:39:16

+0

@ user1111955(我可以稱你爲user9?).settings和app.config相當。我仍然認爲你要麼沒有部署,要麼在應用程序中部署錯誤版本的app.config。它不會被編譯進去;你必須部署它。 – 2012-02-09 23:17:25

1

檢查其retriving數據或不

如果你這樣寫

DataSet.Table[0] 

檢查TIS返回數據和數據集必須包含在它的表。

1

看起來你不需要第二個.connectionstring。您必須將連接字符串放在app.config中connectionstrings標記的正確位置。該位置需要在app.config中具體說明,否則您的代碼將無法找到連接字符串。

相關問題