Connection声明成静态的好不好? private static SqlConnection connection; connection = new SqlConnection(connectionString);用 static 整个网站是不是就只有一个connection?用静态的可行吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么不这样 public static SqlConnection getConn() { SqlConnection conn = new SqlConnection(connString); return conn; }每次新声明一个conn 这样当然也可以的.但是这样每次都new一块内存的.虽然能自己释放,但是效率上比不上前者. 你试试两个SqlDataReader读取一组数据的功能,试试它们并行执行,可能吗?没经过真正产品(维护时期)的历练,仅仅从入门书学编程,会产生很多想当然的编程理论。我唯一想说的只是:SQL Server的SqlConnection是基于连接池的机制,因此当你Close一个SqlConnection的时候并不是物理关闭而是逻辑关闭,当你Open一个SqlConnection的时候是逻辑打开而并不是物理打开连接。如果你认为SqlConnection是物理连接因而相当了“生命成静态”,是画蛇添足反而造成多用户使用服务器时经常造成程序崩溃。 private static void cmd6() { int num = 0; string sql = "select count(*) from bookstore"; SqlConnection conn = DBHelper.getConn(); conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn);//同一个conn SqlCommand cmd2 = new SqlCommand(sql, conn); num = (int)cmd.ExecuteScalar(); string s = string.Format("rows {0}", num); Console.WriteLine(s); //如果cmd用完conn就关了,怎么办? num = (int)cmd2.ExecuteScalar(); s = string.Format("rows {0}", num); Console.WriteLine(s); conn.Close(); Console.WriteLine("conn close"); Console.ReadKey(); }如果是静态的变量都指向同一个连接那cmd用完conn就关了,cmd2怎么办? private static SqlConnection connection; connection = new SqlConnection(connectionString);你这样就是全局共享这个connection,一旦某个用户连接connection出现了问题其他连接这个网站的用户都会有问题建议不要这么做使用全局静态变量一定要考虑清楚.....不要随便用 ComponentArt treeview问题 mvc流程 JSON转换问题 js弹窗 安装问题 Web页面布局问题 SharePoint 是微软的什么东西???? ASP.NET比ASP难多少?菜鸟发问,老鸟接招…… 如何实现用户登录时间及次数管理,请大家给一个主意 $.post 调用ashx 实现下载文件 弹不出框 ASP.NET ListBox 选中的问题 继续问,数据集插入数据库表问题.
public static SqlConnection getConn()
{
SqlConnection conn = new SqlConnection(connString);
return conn;
}
每次新声明一个conn
private static void cmd6()
{
int num = 0;
string sql = "select count(*) from bookstore";
SqlConnection conn = DBHelper.getConn();
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);//同一个conn
SqlCommand cmd2 = new SqlCommand(sql, conn);
num = (int)cmd.ExecuteScalar();
string s = string.Format("rows {0}", num);
Console.WriteLine(s);
//如果cmd用完conn就关了,怎么办?
num = (int)cmd2.ExecuteScalar();
s = string.Format("rows {0}", num);
Console.WriteLine(s); conn.Close();
Console.WriteLine("conn close");
Console.ReadKey();
}如果是静态的变量都指向同一个连接
那cmd用完conn就关了,cmd2怎么办?
connection = new SqlConnection(connectionString);你这样就是全局共享这个connection,一旦某个用户连接connection出现了问题
其他连接这个网站的用户都会有问题建议不要这么做使用全局静态变量一定要考虑清楚.....不要随便用