比如常用的
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) {
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}这个方法是静态的.如果在执行的时候某个语句耗时比较长.比如2秒.那如果同时5个人在访问这个方法.
那最后一个人不是要等8秒钟吗?
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) {
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}这个方法是静态的.如果在执行的时候某个语句耗时比较长.比如2秒.那如果同时5个人在访问这个方法.
那最后一个人不是要等8秒钟吗?
否则用同一份内存,多人访问时可能取得别人的访问结果。
{ Console.Write(user+"begin pro at"+DateTime.Now.ToString()+Environment.NewLine);
Thread.Sleep(5000);
Console.Write(user + "end pro at" + DateTime.Now.ToString() + Environment.NewLine);
}突然发现自己理解错了。
静态方法不用类实例化调用,但是方法中的变量还是不同的内存来储存的.因为是用了new.new SqlConnection(connectionString)那还有一个问题。以前一直想问的。
到底数据库可以支持多少个数据库连接.因为毕竟不会立即释放,总有些连接是费时间的.
因为这里是new SqlConnection(connectionString).
虽然有连接池维护.
有相关 .net下数据访问 .连接的文章不.
谢谢上面的解答.