比如常用的
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秒钟吗?

解决方案 »

  1.   

    建议不要用 static,
    否则用同一份内存,多人访问时可能取得别人的访问结果。
      

  2.   

    不会啊,你每次都是new sqlconnection 对象,一个人执行完了以后,释放这个对象就可以了。
      

  3.   

    自己sb了.用Thread.Sleep(5000);来测试.public static void teststatic(string user)
            {            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下数据访问 .连接的文章不.
    谢谢上面的解答.