C#数据库连接的判断

publicSqlConnectionmyConnection;在publicDB(){myConnection=newSqlConnection();//myConne... public SqlConnection myConnection;

public DB()
{
myConnection = new SqlConnection();
//myConnection.ConnectionString = @"Server=192.168.173.11;User ID=sa;password=sa;Database=PRDB";
string sConnectionStr = "";
sConnectionStr += "Server=" + ConfigurationManager.AppSettings["Server"].ToString() + ";";
sConnectionStr += "UID=" + ConfigurationManager.AppSettings["UserId"].ToString() + ";";
sConnectionStr += "PWD=" + ConfigurationManager.AppSettings["Password"].ToString() + ";";
sConnectionStr += "Database=" + ConfigurationManager.AppSettings["Database"].ToString();
myConnection.ConnectionString = sConnectionStr;
//myConnection.ConnectionString = @"Server=192.168.168.111\sqlexpress;User ID=sa;password=123456;Database=PRDB_TEST";
//myConnection.ConnectionString = @"Server=(local)\SQLEXPRESS;User ID=sa;password=123456;Database=PRDB_TEST";
}
然后
public void Close()
{
if (myConnection != null && myConnection.State.ToString() != "Closed")
{
myConnection.Close();
}
}
为什么要判断数据库不等于空呢
展开
 我来答
paperkey
2013-12-23 · TA获得超过517个赞
知道小有建树答主
回答量:713
采纳率:0%
帮助的人:199万
展开全部
这个纯属是容错的手段,如果你确信自己的myConnection 一定new过了,那么判断null这个可以删掉。
但是,例如,你的代码里还没有执行DB(),此时myConnection并没有new,也就是说它现在是空的,那么如果执行Close(),一定会引发空引用异常。

哦,对了,你是不是不明白为什么要new呢? new这个动作是分配内存空间,public SqlConnection myConnection;这一句只是告诉系统,有SqlConnection 这个引用了,但是还没有给它分配内存,此时它是不能工作的。知道new了,它才算有实质性的内容。
thiefx
2013-12-23 · 超过20用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:36.4万
展开全部
判断这个对象是否存在,如果 程序执行过程中发生异常,有可能已经释放了这个对象的堆内存,
调用这个类的close方法,就先要判断对象是否存在,如果不判断,可能出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万界书屋
2013-12-24 · TA获得超过245个赞
知道小有建树答主
回答量:663
采纳率:50%
帮助的人:171万
展开全部
public SqlConnection myConnection;没有实例化,为空。如果不执行public DB(),直接执行Close();会抱错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浩小宇
2013-12-23 · TA获得超过121个赞
知道小有建树答主
回答量:264
采纳率:0%
帮助的人:96.8万
展开全部
因为你的myConnection 的访问属性是公共的,所以外面也可以设置值,如果外面设置为null了,你myConnection.Close()的时候就会出错,除非这个属性私有访问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式