2014-01-31 95 views
-2

我有一個MSSQL 2008R2數據庫的C#應用​​程序。 數據庫處於單用戶狀態。 我用ADO.NET來連接數據庫。 因此,我創建了一個SqlConnection並在C#中使用它執行我的命令。MS SQL連接錯誤

像這樣:

using (var con = new SqlConnection(ConnectionString.ToString())) 
{ 
    using (var cmd = con.CreateCommand()) 
    { 
     con.Open(); 
     cmd.Connection = con; 
     cmd.CommandTimeout = CommandTimeoutSeconds; 
     cmd.CommandType = System.Data.CommandType.Text; 
     cmd.CommandText = sqlSelect; 
     try 
     { 
      SqlDataReader reader = cmd.ExecuteReader(); 
      while (reader.Read()) 
      { 
       columns.Add(reader[0].ToString()); 
      } 
     } 
     catch (SqlException ex) 
     { 
      logger.Error("Во время отработки запроса произошла ошибка. \nТекст ошибки: {0}.\nStackTrace: {1}.}", 
       ex.Message, ex.StackTrace); 
      throw ex; 
     } 
    } 
} 

但它得到了異常: 「無法打開數據庫 「DB_NAME」。,登錄所請求的登錄失敗登錄失敗,用戶 「sa」`

爲什麼會這樣? 如何處理呢?

是不是連接字符串錯誤,我在每一步檢查。

只有一個連接字符串用於此應用程序,並且在其他代碼的連接是正確的。 應用程序從20個表格中的文件中插入數據,並在第15個表格上給出錯誤消息,在第10個表格或第17個表格上生成另一個應用程序錯誤啓動之後,等等。有時應用程序無誤地工作。

+2

這是什麼意思的英文: 「.',請編輯您的問題 – ekad

+0

」'「 Неудаетсяоткрытьбазуданных 」DB_NAME「。,запрашиваемуюименемвходаНеудалосьвыполнитьвходОшибкавходапользователя」 SA無法打開數據庫「db_name」,由登錄請求。登錄失敗。 「 –

+0

密碼登錄'sa'在連接字符串中是錯誤的 –

回答

0

原因是,登錄失敗。檢查連接字符串中的數據庫憑證,或確保數據庫上啓用了Windows身份驗證,如果這是您正在使用的。

+0

沒有錯。我在這個項目中多次使用它。這個錯誤是在應用程序的不同地方產生的。 – FRoST86

0

您似乎在嘗試使用無效的數據庫登錄連接到數據庫。 您使用過SA在連接字符串中登錄,您確定在安裝MSSQL Server2008時設置了混音模式(系統管理員/ SA的密碼)嗎?

我提供的任何方式來建立一個新的數據庫登錄。 如果你不知道怎麼回事,請點擊此鏈接: http://technet.microsoft.com/en-us/library/aa337562.aspx

+0

不,只有一個連接字符串用於此應用程序,並且其他代碼連接正確。應用程序從20個表格中的文件中插入數據,並在第15個表格上給出錯誤消息,在第10個表格或第17個表格中生成另一個應用程序錯誤開始之後,等等。 – FRoST86

+0

所以你的不可預知的錯誤!可能與Command.TimeOut 有關你在表中有記錄的最大數量是多少? –

+0

3.000.000記錄。我更改連接超時和命令超時,將其設置爲60秒。 – FRoST86

0

創建一個連接字符串的最佳方法是如下

第一步:創建一個文本文件(Mycon.txt),然後重命名擴展到(Mycon.udl)。

第2步:現在雙擊通用數據鏈接文件(Mycon.udl)。

第三步:提供程序選項卡:選擇爲SQL Server, 連接選項卡Microsoft OLEDB提供:輸入服務器,用戶名密碼&和測試連接。

第4步:如果測試連接成功。點擊確定並關閉它。

第五步:用記事本打開Mycon.udl文件。並複製連接字符串。