最近发现身边有很多刚开始学习C#开发的小伙伴网络切换代码用不了,总是遇到一些大大小小的问题,尤其是应用程序连接数据库的时候。在这种情况下,我也把我多年来遇到的问题。应用程序连接数据库时遇到的常见问题,总结并分享给大家。
1.实例名称错误
所谓实例名是指数据库管理工具登录时的服务器名,如下图所示。
数据库登录对话框
为了成功连接数据库,需要注意以下几点:
第一:实例名称正确
[1] 实例名称分为默认实例名称和命名实例名称。
默认的实例名通常是你自己的计算机名或点(.)如上图,也使用localhost(少用,前两个多用)。
命名实例名通常是计算机名/实例名,如DESKTOP-68751EA\命名实例名(提示:这里的名字是安装数据库时使用的实例名),如果不知道名字是什么,你可以使用以下方法检查。
数据库服务视图
在上图中,红色框是默认的命名实例。
二:认证方式错误
数据库登录的认证方式分为Windows认证和SQL Server认证。
如果数据库安装成功,我们将使用Windows身份验证方式首次登录,因为它不需要输入用户名和密码即可进入您的数据库管理工具。为什么我们第一次登录使用Windows认证方式?主要目的是设置登录配置,即设置SQL Server认证方式登录。如果不设置,后面会使用SQL Server认证方式登录,会登录失败。
启用 SQL Server 和 Windows 身份验证模式
三:授权登录角色
以上设置完成后,需要对登录用户进行授权。比如我们使用最高管理权限的sa用户登录,那么就需要授权,如下图所示。
授权并启用sa用户
第四:重启服务
不能忘记最重要的一步。如果忘记了,上述操作将无效。设置好之后,我们需要重启服务器。重启方法如下:
重启服务
确保重启服务
服务重启
重启完成后,断开数据库管理工具,重新登录。此时可以选择SQL Server认证方式登录,输入正确的登录用户名和密码。
如果以上登录没有问题,就可以打开自己编写的程序或者要开发的程序,配置数据库连接字符串。
2.应用配置文件中登录数据库时的常见错误
第一:数据库服务器登录错误
报告的错误:SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。
数据库登录错误信息
上述错误的解决方法:
[1] 进入数据库管理工具,先自己打开登录,确保使用的是有效的数据库服务器名。如下所示:
数据库服务器名称
[2] 修改上述错误数据库连接字符串如下图。
二:数据库登录用户名错误
如下图所示: 用户“xxx”登录失败。
数据库登录用户名错误提示
解决方法:去数据库看看是否有登录用户,如果有,那么你需要确保你没有写错用户名。
找到后,您可以将其修改为正确的。
三:数据库登录密码错误
如下图所示: 用户“sa”登录失败。
用户 sa 登录失败
你会发现第二个和第三个会报同样的错误,所以当你看到这个错误时,一定要先检查一下。
[1] 检查用户名是否存在或写错。
【2】检查数据库登录密码是否正确。
正确的示例代码:
四:数据库登录名错误的问题
[1] 数据库登录名不存在的错误
一般错误如下图所示:
数据名称错误或没有数据库错误信息
解决方法:这种情况你去数据库打开,查看数据库是否存在。
如下图: 确认没有“SMDB”数据库
没有这样的数据库
添加数据库,如下图所示:
添加后
[2] 如果数据库名写错,也会报错。错误类型与[1]中相同,此处不再赘述,如下图所示。
错误的数据库名称
解决方案:只需将其修改为正确的数据库名称即可。
第五:应用登录的用户名或密码不存在或错误。
如下所示:
应用程序用户名和密码错误提示
解决方法:检查这个登录账号是否存在:出现这种情况,首先要检查你的数据库中是否有这个登录账号,并确认登录密码是否正确。
第六:“DAL.SQLHelper”的类型初始化器抛出异常。
注:以上SQLHelper是新格教育项目研发团队封装的通用数据库访问类。
报此错误如下图:
类型初始化器抛出的异常
解决方法:如上图,如果报这个错误,需要去SQLHelper类排查,而这种错误最常见的问题就是读取数据库连接字符串的问题,最常见的一个正在读取连接字符串的属性写入错误。
private static readonly string connString =
ConfigurationManager.ConnectionStrings["connString"].ToString();
如代码所示:
[1] 使用时变量名错误:如果使用时connString变量名错误,会报此错误。
[2]配置文件读写错误:如果ConfigurationManager和ConnectionStrings写入错误,红线会直接亮。
[3] ConnectionStrings[“connString”]:这里的connString是错误的,不会读取数据,也不会读取数据。如果无法读取,会提示如下错误:
对象应用程序未设置为对象的实例
解决方法:到配置文件中找到正确的连接字符串名称,与name属性一致。
3.应用中数据库操作的常见错误(类似配置文件排查)
第一:数据库服务器无法连接成功
错误如下所示:
数据库服务器无法成功连接
解决方案:
[1] 检查SQL Server服务是否开启。
[2] 检查连接字符串Server对应的服务器名称是否正确(注意默认实例名称和命名实例名称)。
[3] 如果您连接局域网内的其他电脑,请检查防火墙是否被封锁,或通过“计算机管理”检查服务器是否允许外部连接。
[4] 还有要求服务器所在的计算机必须开启TCP/IP协议。通过配置管理器。
第二:连接字符串中的分号错误
错误如下所示:
连接字符串中的分号拼写错误
错误原因:连接字符串中的分号写错了,如果把“全角”写成“半角”也会出错。
解决方法:将关键字之间的分号改为英文半角。
三:数据库登录失败
数据库登录失败
解决方案:将数据库名称更改为正确的数据库名称。
四:服务器“登录账号”或“登录密码”错误
服务器“登录账号”或“登录密码”错误
解决方案:
【1】修改登录账号名,或修改登录密码。
[2] 检查sa账户是否开通和授权。
第五:连接字符串的关键字错误
连接字符串中的关键字错误
解决方法:修改连接字符串对应的关键字。
第六:连接对象属性未赋值
连接对象属性未赋值
解决方案:只需将字符串分配给连接对象。
第七:Command对象的属性没有初始化
Command 对象的属性未初始化
解决方法:只需要给SqlCommand的两个属性赋值即可。
4.C# 程序中的 SQL 常见错误
一:sql语法错误
Sql语法错误:字段之间有多个全角空格
SQL 语法错误:连接字符串时空格较少
解决方法:仔细检查提示错误的关键字附近的Sql语句。
提示:编写Sql语句时网络切换代码用不了,必须使用所有英文半角,包括逗号、空格、字母、括号等。
二:列名错误或占位符格式错误
格式错误的占位符
错误的列名
三:格式转换错误
格式转换错误
第四:占位符填充不完整错误
占位符填充不完整错误
第五:在占位符中写大写括号为方括号
将大写括号写为占位符中的方括号
请登录后发表评论
注册
社交帐号登录