C#开发中常见的应用程序连接数据库遇到的问题

最近发现身边有很多刚开始学习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语句时网络切换代码用不了,必须使用所有英文半角,包括逗号、空格、字母、括号等。

二:列名错误或占位符格式错误

格式错误的占位符

错误的列名

三:格式转换错误

格式转换错误

第四:占位符填充不完整错误

占位符填充不完整错误

第五:在占位符中写大写括号为方括号

将大写括号写为占位符中的方括号

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论