C# 3.0 excel数据上载在sql数据库中不起作用

C# 3.0 excel数据上载在sql数据库中不起作用,c#-3.0,C# 3.0,这是普拉迪普 这是excel上传到sql数据库的代码 受保护的void btnupload\u单击(对象发送方,事件参数e) { //string name=ddleoutlet.SelectedValue.ToString(); //卡尔 尝试 { System.IO.FileInfo file=new System.IO.FileInfo(fileupload1.PostedFile.FileName); 字符串fname=file.Name.Remove((file.Name.Length

这是普拉迪普

这是excel上传到sql数据库的代码

受保护的void btnupload\u单击(对象发送方,事件参数e) {

//string name=ddleoutlet.SelectedValue.ToString();
//卡尔
尝试
{
System.IO.FileInfo file=new System.IO.FileInfo(fileupload1.PostedFile.FileName);
字符串fname=file.Name.Remove((file.Name.Length-file.Extension.Length),file.Extension.Length);
fname=fname+DateTime.Now.ToString(“\u ddMMyyyy\u HHmmss”)+文件扩展名;
fileupload1.PostedFile.SaveAs(Server.MapPath(“locations/”)+fname);
字符串filexetion=file.Extension;
如果(filexetion==“.xlsx”)
{
excelConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;”“+”数据源=“+Server.MapPath”(“位置/”)+fname+”;“+”;扩展属性=\“Excel 12.0;HDR=YES;\”;
}
else if(filexetion==“.xls”)
{
excelConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;”“+”数据源=“+Server.MapPath”(“位置/”)+fname+”;“+”扩展属性=\“Excel 8.0;HDR=Yes;\”;
}
OLEDB连接=新的OLEDB连接(excelConnectionString);
OleDbCommand命令=新的OleDbCommand(“从[Sheet1$]中选择*”,连接);
connection.Open();
OleDbDataReader dr=command.ExecuteReader();
SqlConnection conn=新的SqlConnection(strconnection);
conn.Open();
尝试
{
if(dr.Read()==true)
{
while(dr.Read())
{
字符串locationname=dr[“Location Name”].ToString();
字符串状态=dr[“status”].ToString();
如果(位置名称!=“”&状态!=“”)
{
string query=“从tbllocations中选择locationname,其中locationname='”+locationname+“'和outletid='”+Session[“outlet\u id”]。ToString()+”;
//conn.Open();
SqlCommand cmdquery=新的SqlCommand(查询,连接);
SqlDataReader-drreader;
drreader=cmdquery.ExecuteReader();
if(drreader.Read())
{
c=正确;
ssss=ssss+locationname+“,”;
//ss=ssss.Split(',');
}
其他的
{
drreader.Close();
字符串qryprduct=“插入到tbllocations(locationname,status,outletid,cityid)值(“+locationname+”,“+status+”,“+Session[“outlet_id”]。ToString()+”,“+Session[“cityid”]。ToString()+”);
SqlCommand cmd1=新的SqlCommand(qryprduct,conn);
康涅狄格州关闭();
conn.Open();
cmd1.ExecuteOnQuery();
lblerror1.Visible=true;
lblerror1.Text=“位置上传成功”;
//康涅狄格州关闭();
}
drreader.Close();
}
}
//connection.Close();conn.Close();
}
其他的
{
lblerror1.Text=“有一个空的excel工作表文件,请检查”;
lblerror1.Visible=true;
}
}
捕获(例外情况除外)
{
lblerror1.Visible=true;
lblerror1.Text=“Plz检查excel文件格式”;
}
最后
{
连接关闭();连接关闭();
bind();
如果(c==true)
{
lblerror1.Visible=true;
lblerror1.Text=“在excel中,此项偏移已经存在。请选中“”;
//for(int i=0;i
}

以上代码上传正常,但excel中的第一条记录没有上传,请告诉我问题所在,并给我建议

excel数据是

位置名称状态 测试1 测试2 1 测试3 1 测试40 测试5 1 测试60 测试7 1 测试80 测试9 1 测试10 1

谢谢


Pradeep

您需要删除

if (dr.Read() == true)
因为它后面紧接着一个

while (dr.Read())
每一个都将读取一条记录,第一个将跳过文件的第一行

while (dr.Read())