Winform 线程中使用SqlConnection的时候,由于关闭服务器上sqlserver服务造成的问题?

khkly 2012-05-11 09:51:40
Winform 线程中使用SqlConnection的时候,在普通pc上运行程序时候,当数据库服务器上的sqlserver服务运行时候程序对数据库的操作时正常的,但是测试关闭数据库服务器上sqlserver服务的时候捕获到下面错误:
用户代码未处理SqlException
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)


给出代码

	public partial class frmMain:Form
{
public const int WM_USER = 0x0400;
public const int WM_RECO = WM_USER + 100;
string strConn = "Max Pool Size = 1024;Data Source=192.168.0.121;Initial Catalog=ODCar;Integrated Security=false;Uid=sa;Pwd=sa";

protected override void DefWndProc(ref System.Windows.Forms.Message m)
{
switch(m.Msg)
{
case WM_RECO:
{
Thread thread = new Thread(insertData);
thread.IsBackground = true;
thread.Start();
}
break;
default:
base.DefWndProc(ref m);//调用基类函数处理非自定义消息。
break;
}
}
static object ooo = new object();

private void InsertData( )
{
string strCmmd = "Insert Into Record EquID Values ('1111') ";
using(SqlConnection conn = new SqlConnection(strConn))
{
using(SqlCommand cmd = new SqlCommand(strCmmd,conn))
{
try
{
conn.Open();
if(Equals(cmd.ExecuteNonQuery(),0))//如果未更新则记录到log日志里
{

}
}
catch(Exception exception)
{
lock(ooo)
using(StreamWriter sw = File.AppendText("Data.log"))
{
sw.WriteLine(nCount.ToString()+" "+ strCmmd);//写时间不含毫秒
sw.Flush();
}
}
}
}
}
}
...全文
151 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
khkly 2012-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

没看懂,你关闭服务了还想干啥?
[/Quote]

测试winform遇到数据库挂掉时候的情况。。
khkly 2012-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

没看懂,你关闭服务了还想干啥?
[/Quote]
[Quote=引用 2 楼 的回复:]

就应该抛出异常啊!
[/Quote]
不好意思两位,我写错了,关闭服务时候是应该报上面的错,重新启动服务后仍然报上面的错,为什么没恢复连接呢?如果winform和sqlserver都在本机就不回重启sqlserver报错的问题
  • 打赏
  • 举报
回复
就应该抛出异常啊!
doubleu2005 2012-05-11
  • 打赏
  • 举报
回复
没看懂,你关闭服务了还想干啥?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧