2020-11-27
關鍵字:sa登錄、SQL連接失敗
在用C#開發windows端程序並連接SQL Server時有可能會遇到數據庫登錄失敗的問題,報錯現象如下圖所示:
報錯信息如下:
System.Data.SqlClient.SqlException: '用戶 '' 登錄失敗。' This exception was originally thrown at this call stack: [External Code] MyQQ.DataOperator.ExecSQL(string) in DataOperator.cs MyQQ.Frm_Login.pboxLogin_Click(object, System.EventArgs) in Frm_Login.cs [External Code] MyQQ.Program.Main() in Program.cs
這個問題的一種可能的原因是SQL Server數據庫設置了僅以windows身份驗證模式,或C#代碼中登錄數據庫的語句中沒有正確填寫數據庫通行證。
解決的辦法也簡單,不需要動數據庫裏面的內容,僅通過 Microsoft SQL Server Management Studio 工具設置一下登錄模式即可。
具體的步驟如下:
1、打開 Microsoft SQL Server Management Studio 並連接上要設置的數據庫。
2、在數據庫根上右鍵,選擇“屬性”
3、在彈出的對話框中選擇“安全性”,再選擇“SQL Server和Windows身份驗證模式”,隨後確認保存修改。如下圖所示:
4、展開到“登錄名”項,如下圖所示:
5、檢查是否有開放通行證用以登錄數據庫。sa賬戶是SQL Server默認的通行證,打個紅叉就表示這個賬戶當前被禁用。
6、選中要啓用的賬戶,右鍵打開屬性對話框,再設置好登錄密碼,如下圖所示:
7、切換到“狀態”,再按下圖所示設置賬戶開關:
8、保存設置後重啓 Microsoft SQL Server Management Studio 軟件
9、在登錄選項時選擇SQL Server身份驗證,如下圖所示:
10、此時一般都可以正常登錄的了。
11、再次運行C#程序,正確配置連接數據庫字符串:
private static string connString = @"Data Source=CHORM-DESKTOP;Database=db_MyQQ;User ID=sa;Pwd=123456;";
12、一般而言,都可以正常連接的了。
如果經過了上述步驟操作且確認通行證信息正確配置仍然無法正常登錄,則要檢查一下SQL Server服務是否正在運行。
在windows桌面選擇“此電腦”,右鍵打開“管理”,按下圖所示檢查SQL Server服務的運行狀態
如果服務未運行,則右鍵手動啓動一下。
一般而言,按照上述步驟操作後都能解決這一問題。