數據庫超時問題的徹底解決


 最近被一個數據庫超時問題,弄的很崩潰。花了很多時間,終於解決了。下面加色和加粗的地方重點看看。

  var cx_xscj = from aa in sjklj.xgk_xscj

                          select aa;

            foreach (var kk in cx_xscj)

            {

                sjklj.xgk_xscj.DeleteObject(kk);

            }

            sjklj.SaveChanges();

 sjklj.Connection.Close();//不用了,要關閉數據庫釋放資源,否則會引起超時問題

 

 //建立一個用來離線查詢並存儲的dataset

                SqlConnection sqlcon = new SqlConnection(conn);

                sqlcon.Open();

                SqlCommand sqlcmd = new SqlCommand();

                sqlcmd.Connection = sqlcon;

                sqlcmd.CommandTimeout = 1800;//30分鍾

                sqlcmd.CommandText = "select * from xgk_xscj";

                SqlDataAdapter sda_gx_xscj = new SqlDataAdapter(sqlcmd);//面向全國的用戶,還要設置where條件獲取指定的學校的指定年級和年度的數據,盡量少。

                SqlCommandBuilder scb = new SqlCommandBuilder(sda_gx_xscj);//這個非常重要,否則可能保存失敗

                DataSet ds_xscj_pm = new DataSet();

                sda_gx_xscj.Fill(ds_xscj_pm, "xscj");

 

 sda_gx_xscj.Update(ds_xscj_pm, "xscj"); //.Update(ds, "xscj");//放到最后執行

                     ds_xscj_pm.Dispose();

                     ds_xscj_tj.Dispose();

                     sda_gx_xscj.Dispose();

                     sqlcon.Close();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM