SQL服务器卡住了

时间:2018-09-19 05:57:33

标签: c# sql-server xamarin sql-server-2008-r2

我遇到了一个问题,我不知道发生了什么。 我正在使用移动设备将数据存储到本地客户的PC(SQL服务器)中。 通信方法是通过wi-fi。问题是,如果出于某种原因,我将关闭网络适配器并重新打开它。 SQL服务器完全卡住了。我将无法再次与手机通信,直到我将重置SQL服务或关闭并重新打开手机的wifi。为什么会这样呢?我该如何解决? 这是我的连接字符串

 string connectionString=" Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword";

 using(SqlConnection connection=new SqlConnection(connectionString))
 using(SqlCommand cmd = new SqlCommand("Insert into customers (name) values '"+Text1.Text+"'",connection))
  {
      connection.Open();
      cmd.ExecuteNonQuery();
   }

有时候我得到的错误索引是在绑定数组之外,但是大多数时候我得到的连接超时

1 个答案:

答案 0 :(得分:1)

这是因为SQL Server的基础套接字通信而您无法修复它。 正如@ ta.speot.is所说,您的设计绝对是糟糕的。您可以增加与SQL Server的连接超时,但是对于不良设计而言,这并不是一个好的解决方案。套接字通信仍然有效。就像您从服务器上拔下网络插座,然后再次连接它一样,希望所有操作都能恢复正常! 套接字是打开的,根据底层SQL Server的体系结构,套接字关闭,超时等需要一些时间。

最好的解决方案是实现与数据库通信的服务,通过这种方式,当WIFI连接断开或发生类似情况时,与数据库的基础连接仍然有效,并由Web服务成功处理。您的移动应用程序只是获取和发布对Web服务的请求,而不关心服务如何处理数据库操作。