日期:2014-05-18  浏览次数:21172 次

c# winform 数据库连接
各位在用c#写winform 数据库应用项目时,数据库连接
1、在系统启动的时候创建,一直保持连接直到系统退出
2、随用随创建,用完释放
这两种方式,各有什么优缺点,各位在项目中一般用的哪种方式?

------解决方案--------------------
1、在系统启动的时候创建,一直保持连接直到系统退出
--------------------------------------------
连续批量处理好多数据的时候。比如系统里几百分条图像数据,你要通过winform读出图像进行处理后再写回去。这种时候为每一个图像数据打开/关闭一次连接实在无聊。


通常情况下当然是第二种了。
------解决方案--------------------
mark

------解决方案--------------------
一般是如下用法:
Sqlconnect conn;
以后在用到的时候conn.open();
用过之后,马上conn.close();

------解决方案--------------------
第二种好,比较灵活
------解决方案--------------------
第二种好啊!!!可以节省资源!!!
------解决方案--------------------
我们公司还是用第一种方法。。。。
------解决方案--------------------
必然是第二种
------解决方案--------------------
第一种没必要
你连接数一多,莫名其妙的错误马上就来了

理由:
1.Ado.net的优点就在于断线连接,你搞个一直在线的,那不又把人家给弄回去了
------解决方案--------------------
第二种好
不用实时的连接数据库,可以减少资源利用
------解决方案--------------------
随用随即开,用完就关闭的吧
这样出错的几率小
------解决方案--------------------
我们做的时候是第二种:
其实也不麻烦,
用下using
或者Dispore就释放资源了嘛。
------解决方案--------------------
对电脑也应该有好处
最好是连接完了就关闭
------解决方案--------------------
public class DatabaseServer
{
private SqlConnection conn;
public SqlConnection Connection
{
get
{
try
{
if (conn == null)
{
conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["SY"].ConnectionString;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return conn;
}

}
public int ExecuteSql(string sql)
{
SqlCommand cmmand = null;
try
{
this.Connection.Open();
cmmand = new SqlCommand();
cmmand.Connection = Connection;
cmmand.CommandType = CommandType.Text;
cmmand.CommandText = sql;

return cmmand.ExecuteNonQuery();

}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cmmand.Connection.Close();
}
}
public DataSet ExecuteSql(string sql, string tabName)
{
try
{
this.Connection.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, Connection);
da.Fill(ds, tabName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
Connection.Close();