SqlConnection myCon = new SqlConnection(constr);
try
{
using (myCon)
{
myCon.Open();
Console.WriteLine("数据连接已经打开");
string sql = "select max(age) from mytable003";
SqlCommand mycommand = new SqlCommand(sql, myCon);
int t = 0;
t = (int)mycommand.ExecuteScalar();
Console.WriteLine("最大年龄是" + t + "岁");
myCon.Close();
}
}
catch { }
finally
{
myCon.Close();
Console.WriteLine("数据库已经关闭");
}
Console.ReadKey();
SqlConnection myCon = new SqlConnection(constr);
try
{
using (myCon)
{
myCon.Open();
string sql = "select * from mytable003";
SqlCommand mycommand = new SqlCommand(sql, myCon);
mycommand.ExecuteReader();
SqlDataReader mydr;
mydr = mycommand.ExecuteReader();
if (mydr.HasRows)
{
Console.WriteLine("该表中存在数据");
}
else
{
Console.WriteLine("该表中没有数据");
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
finally
{
myCon.Close();
Console.WriteLine("数据库已经关闭");
}
Console.ReadKey();
已经使用了using 关键字,不需要再执行close方法
但是你using用错了,应该是
using(SqlConnection myCon = new SqlConnection(constr))
不要把定义放到using外面去
-=-==-
即使你之前的连接没有关闭,也并不影响你建立另一条连接去连数据库,所以跟上一段代码有没有close没有关系
何况你是把程序关闭了,改了代码再重新运行的,那所有占用的资源肯定都释放了,不会有任何影响
我怀疑你代码放的不全,你是不是把第二段代码写循环里了,然后没关闭就又重复执行了myCon.Open();