下面代码判断数据库是否连接,但是当数据库停止后,运行至sqlconn.open就报错,应该如何解决
string SqlState;
string strConn;
System.Data.SqlClient.SqlConnection sqlConn=new System.Data.SqlClient.SqlConnection();
strConn="server=localhost;uid=sa;database=Northwind";
sqlConn.ConnectionString=strConn;
SqlState=sqlConn.State.ToString();
sqlConn.Open();
if (SqlState=="Open")
console.writeline("sucsse")
else
console.writeline("faile")
string SqlState;
string strConn;
System.Data.SqlClient.SqlConnection sqlConn=new System.Data.SqlClient.SqlConnection();
strConn="server=localhost;uid=sa;database=Northwind";
sqlConn.ConnectionString=strConn;
SqlState=sqlConn.State.ToString();
sqlConn.Open();
if (SqlState=="Open")
console.writeline("sucsse")
else
console.writeline("faile")
public static bool TestConnection(string connstr)
{
IPHostEntry iphe = null;
bool connectFlag = false;
bool hostFindFlag = true;
try
{
string hostName = GetServerFromConnStr(connstr);
if(hostName == ".")
hostName = "127.0.0.1";
iphe = Dns.Resolve(hostName);
}
catch(Exception e)
{
hostFindFlag = false;
Console.WriteLine(e.Message);
} if(hostFindFlag)
{
foreach(IPAddress ipad in iphe.AddressList)
{
try
{
IPEndPoint ipe = new IPEndPoint(ipad, 1433);
Socket tempSocket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
tempSocket.Connect(ipe);
if(tempSocket.Connected)
connectFlag = true;
}
catch(SocketException e)
{
Console.WriteLine(e.Message);
}
}
} if(connectFlag)
{
SqlConnection sqlConn = new SqlConnection(connstr + ";Connection Timeout=10");
try
{
sqlConn.Open();
if(sqlConn.State == System.Data.ConnectionState.Open)
sqlConn.Dispose();
return true;
}
catch(SqlException e)
{
Console.WriteLine(e.Message);
sqlConn.Dispose();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
return false;
}
通常断定是否连接我用sqlConn.State == System.Data.ConnectionState.Open