用datatable,倒入excel到sql。共一万多行数据,8000多导入还没问题,怎么再多就出错呢,就像找不到网页一样,也没有错误提示。 单独导入8000行后的数据,也没问题,可以确认excel数据格式没有问题。
解决方案 »
- 如何备份一个数据库里面的一个表
- 倒序运行游标
- 关于替换公式的问题
- 不支持检索中文,而另外一个数据库却支持?怎么回事?
- 无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。 开始的时候运行正常。
- SQL如何算出一年中有多少周及每周的日期段,设周末为第一天
- 注册网络SQLserver!奇怪的问题!
- 简单的SQL语法问题!!!困惑
- 为何在Windows2KADS中安装MS SQL 2000 中文企业版失败?
- 关于Tran-SQL语句的问题:如何获取库中第21至第40条记录?
- A字段内容相同就不允许B字段重复 这样的约束怎么建??
- 求教:从借书表中求同时借了2本书的学生的借书卡卡号
int unit= (irows-irows%5000)/5000+1;
for(int i=0;i<unit;i++)
{
//這個地方就寫取得excel的行數 從1---5000,然後遞加.
}每次向數據庫發送5000筆
这个问题是由于数据库反应时间过长引起的..你可以用下面代码尝试.int irows = excel.rows.count;
int h = (irows-irows%5000)/5000 + 1;
for(int i=0;i< h;i++)
{
//这个位置每次取5000笔放到数据表.
}
也还是不行,还是一样的打不开。不像是timeout问题。另外用了你这个语句,只能导入倆条记录,应该加个循环阿。
{ try
{
string connectionstr = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
SqlConnection conn;
conn = new SqlConnection(connectionstr);
conn.Open(); DataTable dt = getexcel(filepath);
DeleteBlankRow(dt); //delete empty rows in excel
// Response.Write(dt.Rows.Count); string StrDataYM = YearList.SelectedValue.ToString() + MonthList.SelectedValue.ToString(); string sqlcheck = "select * from VolumeMonthly where DataYM= '" + StrDataYM + "'";
SqlCommand cmdcheck = new SqlCommand(sqlcheck, conn); SqlDataReader rdr1 = cmdcheck.ExecuteReader();
bool result = rdr1.HasRows;
rdr1.Close(); if (result)
{ Response.Write("<script language=javascript>alert('The data of "+YearList.Text +"_"+MonthList.Text +" already exist! Please select the correct Year and Month code !')</script>");
return;
}
string StrItemNM = "";
string intqty = "0";
string StrSeason = "";
string StrKey = "";
string strbuymth = "";
string strbuyyear = "";
for (int i = 0; i < dt.Rows.Count; i++)
{ StrItemNM = dt.Rows[i]["ITEM"].ToString().Replace("'", "''");
if ( dt.Rows[i]["QTY"].ToString ().Length >0)
{
intqty=dt.Rows[i]["QTY"].ToString ();
}
StrKey = dt.Rows[i]["ITEM"].ToString().Trim() +"-"+StrDataYM .ToString ().Trim ();
strbuymth = Convert.ToDateTime(dt.Rows[i]["buydt"]).ToString("MMM");
strbuyyear =Convert.ToDateTime (dt.Rows [i]["buydt"].ToString ()).ToString ("yy");
switch (strbuymth)
{ case "Jan": StrSeason = "AA" + strbuyyear;
break; case "Feb": StrSeason = "BB" + strbuyyear;
break;
case "Mar": StrSeason = "BB" + strbuyyear;
break; case "Apr": StrSeason = "BB" + strbuyyear;
break; case "May": StrSeason = "BB" + strbuyyear;
break; case "Jun": StrSeason = "BB" + strbuyyear;
break;
case "Jul": StrSeason = "BB" + strbuyyear;
break; case "Aug": StrSeason = "CC" + (Convert.ToInt32(strbuyyear)+1).ToString ();
break; case "Sep": StrSeason = "CC" + (Convert.ToInt32(strbuyyear) + 1).ToString();
break; case "Oct": StrSeason = "CC" + (Convert.ToInt32(strbuyyear) + 1).ToString();
break;
case "Nov": StrSeason = "CC" + (Convert.ToInt32(strbuyyear) + 1).ToString();
break;
case "Dec": StrSeason = "CC" + (Convert.ToInt32(strbuyyear) + 1).ToString();
break; }
string sqlinsert = "INSERT INTO [VolumeMonthly] ([Style1],[Style2],[Item],[Season],[Factory],[CO],[CAT],[BUYDT],[QTY],[DataYM],[Dest],[StyleSeaFct]) VALUES ('" + dt.Rows[i]["STYLE"].ToString() + "','" + dt.Rows[i]["ITEM"].ToString() + "','" + StrItemNM.ToString() + "','" + StrSeason + "','" + dt.Rows[i]["PLAN"].ToString() + " ','" + dt.Rows[i]["CO"].ToString() + "','"+dt.Rows [i]["CAT"].ToString()+"','" + dt.Rows [i]["BUYDT"].ToString ()+ "','" + intqty + "','" + StrDataYM.ToString() + "','"+dt.Rows [i]["DEST"].ToString ()+"','"+ StrKey +"')"; SqlCommand cmd = new SqlCommand(sqlinsert, conn); cmd.ExecuteNonQuery(); }
conn.Close(); Response.Write("<script language=javascript>alert('" + StrDataYM + " Data(total " + dt.Rows.Count + " rows) is imported successfully!')</script>");
Button6.Visible = true;
}
catch (Exception ex) //捕捉异常
{
Response.Write(ex.Message);
} }
对于excel导入sql,我是将文件上传到服务器,然后再导入,有没有别的办法?我不想修改web.config里的上传文件大小限制。