C#(将SQL语句写在类里面)布置为何关闭conn出问题(急~~~)

publicclassSqlDBConnect{SqlConnectionconn;///<summary>///打开数据库///</summary>publicvoid... public class SqlDBConnect
{
SqlConnection conn;
/// <summary>
/// 打开数据库
/// </summary>
public void Open()
{
if (conn == null)
{
string strcon = ConfigurationManager.AppSettings["Data"].ToString(); try
{
conn = new SqlConnection(strcon);
conn.Open();
}
catch (Exception ex)
{

}
}
}
/// <summary>
/// 关闭数据库
/// </summary>
public void Close()
{
if (conn != null)
{
try
{
//判断连接的状态是否打开
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
catch (Exception ex)
{ }
}
}
/// <summary>
/// Sql命令语句
/// </summary>
/// <param name="sqlstr"></param>
public void SqlCommand(string sqlstr)
{
if (sqlstr != null)
{
Open();
try
{
SqlCommand com = new SqlCommand(sqlstr, conn);
com.ExecuteNonQuery();
sqlstr = null;
}
catch (Exception ex)
{
}
finally
{
Close();
}

}
}
}

在conn.Close();出问题如下:
ServerVersion = “conn.ServerVersion”引发了“System.InvalidOperationException”类型的异常
连接的时候没有异常,我查看过了,就是在关闭后异常
展开
 我来答
虎用95
2011-05-17 · TA获得超过431个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:72.1万
展开全部
你的Open和SqlCommand都放在try里面了,可能connection根本就是无效的,或者出错了。

ConnectionState 不只有 Open 和 Closed 两种。。。。你在每个catch里面都打一下异常信息看看是不是本来链接就处在异常状态,根本就没正确打开过呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式