C# 测试SQL连接字符串可用性的最有效方法
我写下了这段代码,我试图让它测试SQL字符串连接,但我不知道如何处理C# 测试SQL连接字符串可用性的最有效方法,c#,sql,sql-server,sqlconnection,C#,Sql,Sql Server,Sqlconnection,我写下了这段代码,我试图让它测试SQL字符串连接,但我不知道如何处理connection.Open=true的部分,你能帮我解决这个问题吗?非常感谢您抽出时间 private void button1_Click(object sender, EventArgs e) { try { using (SqlConnection connection = new SqlConnection("Data Source='" + tex
connection.Open=true
的部分,你能帮我解决这个问题吗?非常感谢您抽出时间
private void button1_Click(object sender, EventArgs e)
{
try
{
using (SqlConnection connection = new SqlConnection("Data Source='" + textBox1.Text + "';Initial Catalog='" + textBox2.Text + "';User ID='" + textBox3.Text + "';Password='" + textBox4.Text + "'"))
{
try
{
connection.Open();
if (connection.Open == true) // if connection.Open was successful
{
MessageBox.Show("You have been successfully connected to the database!");
}
else
{
MessageBox.Show("Connection failed.");
}
}
catch (SqlException) { }
}
}
catch (Exception ex)
{
MessageBox.Show("Chyba v přihlášení: " + ex);
}
finally
{
}
}
它说:“不能指定‘打开’,因为它是一个‘methoud组’”。我知道这段代码可能非常糟糕,但我需要以某种方式处理它,不知道什么是正确的方法。多谢各位
对于未打开的连接,这实际上不起作用:
using (SqlConnection connection = new SqlConnection("Data Source='" + textBox1.Text + "';Initial Catalog='" + textBox2.Text + "';User ID='" + textBox3.Text + "';Password='" + textBox4.Text + "'"))
{
connection.Open();
if (connection.State == ConnectionState.Open)
{
MessageBox.Show("Spojení s databázi problěhlo úspěšně.");
}
connection.Close();
if (connection.State == ConnectionState.Closed)
{
MessageBox.Show("Spojení selhalo");
}
}
您使用的是
connection.Open=true
,就好像它是一个属性一样
它是一种方法:connection.Open()
使用枚举确定连接是否打开,例如:
connection.State == ConnectionState.Open
您需要检查它是否由以下代码打开:
if(connection.State == ConnectionState.Open)
{
...
}
.Open()
是一个返回void的方法,它不是属性。不能给它赋值。查看我的答案。您好,谢谢您的时间,请问您的情况如何(如果未成功连接?)我尝试了connection.State==ConnectionState.Closed或Breaked,但没有弹出消息框。您在哪里调用了connection.State==ConnectionState.Closed
?你能更新你的问题吗?谢谢。第二个消息框显然不会显示,因为您刚刚调用了connection.Open()
来打开连接,因此它是打开的,而不是关闭的。尝试调用connection.Close()
,然后测试第二个messagebox。我尝试了,但在连接失败时它停止了。Open失败,SqlConnection详细信息不正确,并且没有弹出消息框。非常感谢您的时间,我已经更新了我的问题,我现在有什么代码。发生这种情况时,您可以随时在调试器中检查连接,您应该能够看到它的状态。或者,您可以只执行如果(connection.State!=ConnectionState.Open)
则它将匹配所有其他场景。您好,谢谢您的时间,我可以问一下外观如何(如果未成功连接?)我尝试了connection.State==ConnectionState.Closed或breaked,但它没有弹出消息框。我会尝试connection.State=ConnetionState.Open
我也试过了,但也没有弹出消息框。我更新了问题,以便你能更好地理解我的问题。