Linq下的數(shù)據(jù)存儲問題
不多所,看注釋。不注意這些技巧,可能你的數(shù)據(jù)保存無效。
var cx_xscj = from aa in sjklj.xgk_xscj
select aa;//獲取所有(要保存)記錄,不一定是全部記錄,然后進(jìn)行存儲,查詢語句放到循環(huán)之外
FpSpread1.OpenExcel(Server.MapPath("~/exceldr/") + wjm, FarPoint.Excel.ExcelOpenFlags.DataOnly);
int i = 1;
foreach (var kk in cx_xscj)//在excel中計算數(shù)據(jù),填入到fpread中,從fpread中讀取數(shù)據(jù)存入數(shù)據(jù)庫
{
//獲取學(xué)號,姓名,班級定位
string xh = this.FpSpread1.ActiveSheetView.Cells[i, 0].Text.Trim();
string xm = this.FpSpread1.ActiveSheetView.Cells[i, 1].Text.Trim();
string bj = this.FpSpread1.ActiveSheetView.Cells[i, 2].Text.Trim();
string strhx = this.FpSpread1.ActiveSheetView.Cells[i, 13].Text.Trim();//化學(xué)等級
string strsw = this.FpSpread1.ActiveSheetView.Cells[i, 14].Text.Trim();//生物等級
string strzz = this.FpSpread1.ActiveSheetView.Cells[i, 15].Text.Trim();//政治等級
string strdl = this.FpSpread1.ActiveSheetView.Cells[i, 16].Text.Trim();//地理等級
/*如果還要根據(jù)每一條記錄,再去查詢,必然浪費大量時間
string gx_ffdj = "update xgk_xscj set hxdj=@hxdj,swdj=@swdj,zzdj=@zzdj,dldj=@dldj where xh=@xh and xm=@xm and bj=@bj";
SqlParameter sqlcs1 = new SqlParameter("@hxdj", strhx);
SqlParameter sqlcs2 = new SqlParameter("@swdj", strsw);
SqlParameter sqlcs3 = new SqlParameter("@zzdj", strzz);
SqlParameter sqlcs4 = new SqlParameter("@dldj", strdl);
SqlParameter sqlcs5 = new SqlParameter("@xh", xh);
SqlParameter sqlcs6 = new SqlParameter("@xm", xm);
SqlParameter sqlcs7 = new SqlParameter("@bj", bj);
SqlParameter[] sqlcsch = new SqlParameter[] { sqlcs1, sqlcs2, sqlcs3, sqlcs4, sqlcs5, sqlcs6, sqlcs7 };
gj.sqltjscgx(conn, gx_ffdj, sqlcsch);//更新賦分等級
*/
//var kk= cx_xscj.Where(aa => aa.xh == xh && aa.xm == xm && aa.bj == bj).First();這種查詢方式不是最快,最好是記錄從上到下指針指到這里,不要再次查詢
kk.hxdj = strhx;
kk.swdj = strsw;
kk.zzdj = strzz;
kk.dldj = strdl;
i++;
}
sjklj.SaveChanges();//循環(huán)外保存。有多個并列循環(huán),在每個循環(huán)外保存一次

浙公網(wǎng)安備 33010602011771號