操作数据库出现InvalidOpertionException(内部连接致命错误)


用DataTables时并发访问量较大,单个任务操作(获取数据)时间较长。连接数过多的时候就出现InvalidOpertionException错误。
知道哪里有问题那就好办了,对GetDataTable(string sql):DataTable方法用线程锁 lock() ,这样就不会出现上述问题。类型问题也可以这样解决。
 
代码:
       private static readonly object olock = new object();
       public static DataTable GetDataTable(string sql)
        {
            lock (olock)
            {
                SqlDataAdapter sda = new SqlDataAdapter(sql, connection);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                sda.Dispose();
                return dt;
            }
        } 

 

posted @ 2018-06-04 15:23  Gavinloliy  阅读(1287)  评论(1编辑  收藏  举报