2010-03-16 31 views
0

這裏是我的代碼的相關部分:異常。數據人口錯誤?

adapter.Fill(table); 

    return; 
} 
catch(Exception ex) 
{ 
    SqlException sqlEx = ex as SqlException; 

我的影片被adapter.Fill()拋出,以及一個異常時,我把一個斷點在第一行中的異常處理程序中,Exception.Data屬性已經包含一個對我的應用程序來說唯一的鍵。

事情是,它不會每次都發生,但只有當這個異常被拋出後的〜2秒內拋出。

解釋一下!

+0

需要更多信息,並可能拋出異常。還有更多的backgroupd信息將被mucha讚賞。 – AxelEckenberger 2010-03-16 20:29:25

+0

@ Obalix - 特定的SqlException是數字#4060(登錄失敗)。 – Chris 2010-03-16 20:35:06

+0

@ Russell- chill out – Chris 2010-03-16 20:36:00

回答

0

從您引用的錯誤中,我將假定您使用的SQL連接信息不正確,或者密碼已過期。檢查您的連接並在您的環境之外進行測試。

如果您正在使用集成安全性,則可能是用戶未添加到SQL Server安全性,或者用戶無權訪問數據庫。在SQl Server中,安全性是一個兩步過程,首先將用戶添加到SQL Server作爲有效登錄名,然後授予用戶對數據庫的訪問權限。

0

對這個page有個評論,這聽起來像它可能屬於你所看到的。

用戶(TWheelhouse)表示:

似乎不知何故 某些.NET框架功能嘗試將一個例外的 重複使用情況下,表面上,從而導致 標誌添加到「數據」 集合似乎已經設置 當他們真的只是掛 從當 異常被拋出之前的時間和 添加的標誌周圍...

public static void foo(string connectionString) { 
    try { 
    SqlConnection cn = new SqlConnection (connectionString); 
    cn.Open(); 
    } 
    catch (SqlException ex) { 
    if (ex.Data.Contains("MY_TEST_FLAG")) 
     Debug.WriteLine("BAD! It Shouldn't be there yet!"); 
    else 
     Debug.WriteLine("Fine."); 

    ex.Data.Add("MY_TEST_FLAG", true); 
    } 
} 

調用foo()幾次與在 格式vaild,但也許是一個壞的UID 值 連接字符串。你第一次打電話給FOO,我 得到「好」。當連接字符串錯誤 連接字符串導致 連接對象拋出 SqlException,但每次後 ,我得到「壞」!消息(對於 ,同時,最終我將再次獲得「精細」 消息,一次,然後更多「不好!」 消息)。

如果每一個我試圖創建一個 的SqlConnection一個壞的連接字符串 真的導致 完全獨特 SQLEXCEPTION的實例時拋出,我每次拿到 「微調」的消息!

我自己也沒有複製過這個問題,也沒有試圖運行上面的代碼,但似乎它可能與您報告的問題有關。