最近一直在做Excel数据到SQL数据库中,在网上找了几个例子看了一下,没有一个是完整的,适合于我的,我的到入是从Excel模板表中导入规定格式的数据到指定的表中.于是自己根据例子和实际写了一个程序,希望对大家有帮助,但程序还有一点问题,就是不能判断数据库存在的记录,如果那位高手能完善,请给我留个言或发Email:dq@swust.edu.cn,谢谢!
if (UploadFile.PostedFile.FileName.Trim()!="")
{
//上传文件
string extension = Path.GetExtension(UploadFile.PostedFile.FileName).ToUpper();
if(extension==".XLS")
{
string fileName = DateTime.Now.ToString("yyyyMMddhhmmss");
path = Server.MapPath(".") + "/upfile/" + fileName + extension;
UploadFile.PostedFile.SaveAs(path);
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+";Extended Properties=Excel 8.0";
OleDbConnection cnnxls=new OleDbConnection(strConn);
OleDbDataAdapter myDa=new OleDbDataAdapter("select * from [Sheet1$]",cnnxls);
DataSet myDataSet=new DataSet();
myDa.Fill(myDataSet);
string strSql="select * from tb_student";
DataSet myDs=new DataSet();
SqlDataAdapter da=new SqlDataAdapter(strSql,myConn);
da.Fill(myDs,"tb_student");
for(int i=0;i<myDataSet.Tables[0].Rows.Count;i++)
if(myDataSet.Tables[0].Rows["studentno"].ToString().Trim()!="")
{
DataRow dr=myDs.Tables[0].NewRow();
DataRow dr1=myDataSet.Tables[0].Rows;
dr["studentno"]=dr1["studentno"];
dr["name"]=dr1["name"];
dr["class"]=dr1["class"];
dr["course"]=dr1["course"];
dr["courses"]=dr1["courses"];
dr["termid"]=dr1["termid"];
dr["termname"]=dr1["termname"];
myDs.Tables[0].Rows.Add(dr);
}
SqlCommandBuilder sqlCb=new SqlCommandBuilder(da);
da.Update(myDs,"tb_student");
myDs.AcceptChanges();
MsgBox.Show("导入数据成功!");
}
else
{
MsgBox.Show("文件格式不正确");
}
}
else
{
MsgBox.Show("请选择你要导入的文件");
}