如何编写此脚本
if (con.Open == true) ;
{
totalv.ExecuteNonQuery();
}
else
{
con.Open();
totalv.ExecuteNonQuery();
}
答案 0 :(得分:3)
好吧,主要问题是由于if
末尾的分号:
if (con.Open == true) ;
这基本上终止了if
语句,因为你刚刚得到一个块...这意味着else
没有任何内容可以引用。因此,最小的变化是:
if (con.Open == true)
{ totalv.ExecuteNonQuery(); }
else
{
con.Open();
totalv.ExecuteNonQuery();
}
然而,这更简单地写为:
if (!con.Open)
{
con.Open();
}
totalv.ExecuteNotQuery();
下一个问题 - 您尝试将Open
用作属性和方法。我怀疑你想要这样的东西:
if (con.State == ConnectionState.Closed)
{
con.Open();
}
totalv.ExecuteNotQuery();
但是,我同意Pranay的说法,每次需要时打开和关闭连接会更好,并让连接池处理物理网络连接。你为什么要处理一个可能封闭的连接呢?
答案 1 :(得分:1)
更好的方法:使用带有连接对象的using语句
using (SqlConnection cn = new SqlConnection(connectionString))
{
using (SqlCommand cm = new SqlCommand(commandString, cn))
{
cn.Open();
cm.ExecuteNonQuery();
}
}