用DataTables時併發訪問量較大,單個任務操作(獲取數據)時間較長。連接數過多的時候就出現InvalidOpertionException錯誤。知道哪裡有問題那就好辦了,對GetDataTable(string sql):DataTable方法用線程鎖 lock() ,這樣就不會出現上述問題。 ...
用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; } }