错误背景:

操作系统:编程环境: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也彻底攻克了这个问题,因此升级也是个不错的选择

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

最新文章

  1. 【BZOJ3940】【BZOJ3942】[Usaco2015 Feb]Censoring AC自动机/KMP/hash+栈
  2. 支付宝地铁SDK使用失败记录
  3. 大数据 &gt; 数据平台方案评估
  4. linux 匹配字符串是否为数字
  5. 【转】ubuntu 重启命令,ubuntu 重启网卡方法
  6. SQL语法粗整理
  7. OS版本调研
  8. Word对象模型 (.Net Perspective)
  9. Web.config 文件中的 system.webServer
  10. Linux,activemq-cpp之消息过滤器
  11. 又拍云张聪:OpenResty 动态流控的几种姿势
  12. SpringBoot集成MongoDB
  13. LeetCode算法题-Balanced Binary Tree(Java实现)
  14. Fetch API &amp; Delete &amp; HTTP Methods
  15. Zend Framework2从入门到精通
  16. 【51nod 1785】数据流中的算法
  17. MFC中psz_data无法读取内存的错误
  18. 使用isEmpty()报空指针异常
  19. Spring framewrok 源码概览
  20. c++中被忽视的隐藏

热门文章

  1. webstorm里直接调用命令行
  2. bootparam - 介绍Linux核心的启动参数
  3. CAD参数绘制批注(com接口)
  4. CAD绘制标记(网页版)
  5. EditControl 限制输入文本的三种方法
  6. 无法完成安装:&#39;Cannot access storage file &#39;/
  7. Android-ViewPagerIndicator框架使用——CirclePageIndicator
  8. LOJ 2321 清华集训2017 无限之环 拆点+最小费用最大流
  9. Python学习之单继承与多继承
  10. PAT顶级 1002. Business (35)