错误背景:

操作系统:编程环境: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. 洛谷 P1615 西游记公司

    题目背景 一道极其无厘头的题目 题目描述 事情是这样的:西游记中的孙沙猪(孙杀猪)三徒弟在西天取经之后开始进入厦门大学经贸系学习经济,在1个小时的学习后,他们用暴力手段毕业了.然后,他们创办了三个公司 ...

  2. deallocvt - 释放未使用的虚拟终端

    SYNOPSIS(总览) deallocvt [ N1 N2 ... ] DESCRIPTION(描述) 如果不指定参数, deallocvt 程序会释放所有未使用的虚拟终端的核心内存和数据结构. 如 ...

  3. 类unix系统 递归删除指定文件

    递归删除当前目录下所有以 ._开头的文件 find . -name "._*" | xargs rm -f 或者: find . -name "._*" -ex ...

  4. java解决动态的锁顺序死锁的方案

    直接上代码 public class Test3 { public static Object fromAccount = new String("1"); public stat ...

  5. JFinal项目eclipse出现Unknown column 'createtime' in 'order clause' 的错误

    JFinal项目eclipse出现Unknown column 'createtime' in 'order clause' 的错误,在本次项目中的原因是我的表中的字段信息中创建时间的字段是creat ...

  6. pytorch之Tensor与Variable的区别

    首先在变量的操作上:Tensor对象支持在原对象内存区域上修改数据,通过“+=”或者torch.add()方法而Variable不支持在原对象内存区域上修改数据Variable对象可求梯度,并且对Va ...

  7. [实现] 利用 Seq2Seq 预测句子后续字词 (Pytorch)2

    最近有个任务:利用 RNN 进行句子补全,即给定一个不完整的句子,预测其后续的字词.本文使用了 Seq2Seq 模型,输入为 5 个中文字词,输出为 1 个中文字词.目录 关于RNN 语料预处理 搭建 ...

  8. double salary = wage = 9999.99错误

    在看书时,有这么一句表达式 double salary = wage = 9999.99; 在Linux中编译时,不能通过,提示是 error: 'wage' was not declared in ...

  9. linux中的命令

    1,ln-链接 功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是: ln -s 源文件 目标文件  // -s 是 symbolic(符号,象征)的意思. l ...

  10. 关于 <customErrors> 标记的“mode”属性设置为“Off”的问题的解决方案

    用 权限问题 <customErrors> 标记的“mode”属性设置为“Off”. 权限问题标记的“mode”属性设置为“Off”.说明: 服务器上出现应用程序错误.此应用程序的当前自定 ...