C#连接SQL Server时提示'用户登录失败'
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服务的运行状态
如果服务未运行,则右键手动启动一下。
一般而言,按照上述步骤操作后都能解决这一问题。