错误背景:

操作系统:编程环境:VS2013。  语言:VB.net;  数据库:SQLserver2008

做数据库连接时。发生的错误:

错误提示为:

说明:用VB.net连接SQLServer数据库

第一种情况:

连接字符串为“Server=(Local);Database=charge_sys;UserID = sa;Password=123456”时,连接没问题;

另外一种情况:

当把“ Server=(Local)”换为 “ Server=192.168.24.123 ”。即把local换为数据库serverIP地址时,连接不成功。出现如上错误(PS:其它人的机器上就能够)。

第一种情况的代码:

    Public Class UserDAO
Public connStr As String = "Server=(Local);Database=charge_sys;User ID = sa;Password=123456"
Public Function UserLogin(ByVal userName As String, ByVal password As String) As Boolean
<span style="white-space:pre"> </span> Dim conn As New SqlConnection(connStr)
Dim dbcmd As New SqlCommand
Dim reader As SqlDataReader
<span style="white-space:pre"> </span> Dim sqlStr As String = "select * from User_Info where userID=@userName and PWD=@password"
'与数据库建立连接
conn.Open()
'操作数据库
dbcmd = New SqlCommand(sqlStr, conn)
dbcmd.Parameters.Add(New SqlParameter("@userName", userName))
dbcmd.Parameters.Add(New SqlParameter("@password", password))
reader = dbcmd.ExecuteReader
If reader.Read Then
Return True
Else
Return False
End If
'关闭与数据库的连接
conn.Close()
End Function
End Class

另外一种情况的代码

    Public Class UserDAO
Public connStr As String = "Server=192.168.24.123;Database=charge_sys;User ID = sa;Password=123456"
Public Function UserLogin(ByVal userName As String, ByVal password As String) As Boolean
<span> </span> Dim conn As New SqlConnection(connStr)
Dim dbcmd As New SqlCommand
Dim reader As SqlDataReader
<span> </span> Dim sqlStr As String = "select * from User_Info where userID=@userName and PWD=@password"
'与数据库建立连接
conn.Open()
'操作数据库
dbcmd = New SqlCommand(sqlStr, conn)
dbcmd.Parameters.Add(New SqlParameter("@userName", userName))
dbcmd.Parameters.Add(New SqlParameter("@password", password))
reader = dbcmd.ExecuteReader
If reader.Read Then
Return True
Else
Return False
End If
'关闭与数据库的连接
conn.Close()
End Function
End Class

两种代码的不同之处只在于数据库连接字符串中的Server值不同

解决方法:

       第一种方法:


       重置winsock,我的系统为Win7 64位旗舰版,用管理员身份执行:netsh winsock reset ,重新启动,得到解决。

其它系统重置方法或者出现故障,可參考百度百科《netsh
winsock reset》

       第一种方法:


       更新.NET Framework。


       在VisualStudio的反馈中心找到了解决方法:After
installing VS 2013 unable to add data connections?
。在这个帖子以下有这样一句评论:

        

        在VS中看了一下.NET Framework的版本号:

        

        于是去下载了最新版本号的.NET Framework4.5.2(点击跳到下载链接)。安装之后上述问题“ ‘System.AccessViolationException’
类型的未经处理的异常在 System.Data.dll 中发生
” 得到完美解决。
     
     

总结:

       发生此问题“ ‘System.AccessViolationException’ 类型的未经处理的异常在 System.Data.dll 中发生”,可能是安装了VS2013后对系统中的winsock接口产生影响。因此第一种方法重置winsock能够解决;微软近期几天刚公布的.NET
Framework4.5.2也彻底攻克了这个问题,因此升级也是个不错的选择

       
       发生此类问题肯定还有其它原因和解决方式,假设您还有所补充,欢迎您给我回复,互相学习。共同进步。

System.AccessViolationException”类型的未经处理的异常在 System.Data.dll 中发生。其它信息:尝试读取或写入受保护的内存。这通常指示其它内存已损坏。的更多相关文章

  1. “System.BadImageFormatException”类型的未经处理的异常在 PurchaseDevices.Access.dll 中发生 其他信息: 未能加载文件或程序集“System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一个依赖项。试图加载格式不正确

    引用sqlite的程序集时,有时会报如下异常:  "System.BadImageFormatException"类型的未经处理的异常在 PurchaseDevices.Acces ...

  2. P/Invoke出现错误 System.NullReferenceException”类型的未经处理的异常在 未知模块。 中发生 未将对象引用设置到对象的实例。

    问题 “System.NullReferenceException”类型的未经处理的异常在 未知模块. 中发生 未将对象引用设置到对象的实例. 解决方案 1.尝试 用管理员身份运行CMD,输入nets ...

  3. String.Net “System.TypeInitializationException”类型的未经处理的异常在 Spring.NetDemo.exe 中发生

    今天编写String.Net时,遇到“System.TypeInitializationException”类型的未经处理的异常在 Spring.NetDemo.exe 中发生 原因配置文件的顺序写错 ...

  4. “System.AccessViolationException”类型的未经处理的异常在 System.Data.dll 中发生 其他信息: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏

    用管理员身份运行CMD:netsh winsock reset就可以解决

  5. 使用C#在VS中开发:未处理AccessViolationException “System.AccessViolationException”类型的未经处理的异常

    未处理AccessViolationException: “System.AccessViolationException”类型的未经处理的异常在System.Data.dll中发生 其他信息:尝试读 ...

  6. “System.FormatException”类型的未经处理的异常在 System.IdentityModel.dll 中发生 其他信息: 十六进制字符串格式无效。

    如果你的 WebService 客户端证书配置都没问题,唯独调用接口会出现这个错误 “System.FormatException”类型的未经处理的异常在 System.IdentityModel.d ...

  7. System.AccessViolationException,尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

    从事件查看器中发现,IIS不定期崩溃并重启的现象.抓取crash dump文件后,发现能够看到异常,但没有堆栈信息(主要是只会看托管代码的堆栈,非托管的不清楚.),问题表现及dump日志的截图如下: ...

  8. System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

    系统debug时出现错误,System.AccessViolationException: 尝试读取或写入受保护的内存.这通常指示其他内存已损坏. Attempted to read or write ...

  9. AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

    在使用SqlConnection.Open()连接到SQL Server 2008 R2 SP2时,一直报以下异常: AccessViolationException: 尝试读取或写入受保护的内存.这 ...

随机推荐

  1. QQ感叹号是什么鬼?原来是服务器波动,腾讯官方来辟谣了

    今天晚上很多网友在用QQ发送消息的时候发现,自己发送的消息一直是感叹号❗到底是怎么回事呢?是消息都发不出去了吗?马浩周通过手机测试后发现,其实消息是可以发出去的,而官方手机QQ出来已经通知了,是服务器 ...

  2. CREATE TRIGGER - 定义一个新的触发器

    SYNOPSIS CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] } ON table [ FOR [ EACH ] { ROW | ...

  3. linux远程开机

    它需要wakeonlan这个软件,     从何处得到它?     它的官方站是:http://sourceforge.net/projects/wake-on-lan/     如果使用rpm包可以 ...

  4. OAuth - 第三方登录的原理

    第三方登录的原理 所谓第三方登录,实质就是 OAuth 授权.用户想要登录 A 网站,A 网站让用户提供第三方网站的数据,证明自己的身份.获取第三方网站的身份数据,就需要 OAuth 授权. 举例来说 ...

  5. mysql安装及navicat连接

    1.下载mysql官方连接:https://dev.mysql.com/downloads/mysql/ 下载成功后,解压到自己想要的路径下并创建my.ini文件和配置环境变量 然后我们在根目录下创建 ...

  6. idea拉出Output窗口和还原窗口

    拉出:按住标题可以拖出 效果: 还原:点击restore layout

  7. js正则表达式,只允许输入纯数字或‘/’

    //输入框,限数字和/----需要多个数量询价,请以/分隔 function onlyonce(obj) {//先把非数字的都替换掉,除了数字和.obj.value = obj.value.repla ...

  8. 在前后端分离的SpringBoot项目中集成Shiro权限框架

    参考[1].在前后端分离的SpringBoot项目中集成Shiro权限框架 参考[2]. Springboot + Vue + shiro 实现前后端分离.权限控制   以及跨域的问题也有涉及

  9. Linux htop工具使用详解【转】

    原文地址: http://www.cnphp6.com/archives/65078 一.Htop的使用简介 大家可能对top监控软件比较熟悉,今天我为大家介绍另外一个监控软件Htop,姑且称之为to ...

  10. A - 栈

    Description   You are given a string consisting of parentheses () and []. A string of this type is s ...