我在我的 .net 应用程序中使用 excel 数据导入到 sql 表,但是在保存数据时出现以下错误:
我的代码:
protected void btnSave_Click(object sender, EventArgs e) { string FileName = lblFileName.Text; string Extension = Path.GetExtension(FileName); string FolderPath = Server.MapPath (ConfigurationManager.AppSettings["FolderPath"]); string CommandText = ""; switch (Extension) { case ".xls": //Excel 97-03 CommandText = "spx_ImportFromExcel03"; break; case ".xlsx": //Excel 07 CommandText = "spx_ImportFromExcel07"; break; } //Read Excel Sheet using Stored Procedure //And import the data into Database Table String strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString; SqlConnection con = new SqlConnection(strConnString); SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = CommandText; cmd.Parameters.Add("@SheetName", SqlDbType.VarChar).Value = ddlSheets.SelectedItem.Text; cmd.Parameters.Add("@FilePath", SqlDbType.VarChar).Value = FolderPath + FileName; cmd.Parameters.Add("@HDR", SqlDbType.VarChar).Value = rbHDR.SelectedItem.Text; cmd.Parameters.Add("@TableName", SqlDbType.VarChar).Value = txtTable.Text; cmd.Connection = con; try { con.Open(); object count = cmd.ExecuteNonQuery(); lblMessage.ForeColor = System.Drawing.Color.Green; lblMessage.Text = count.ToString() + " records inserted."; } catch (Exception ex) { lblMessage.ForeColor = System.Drawing.Color.Red; lblMessage.Text = ex.Message; } finally { con.Close(); con.Dispose(); Panel1.Visible = true; Panel2.Visible = false;
}
}
我在 web.config 中使用 excel 格式的连接字符串:
<connectionStrings>
<add name="Excel03ConString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'"/>
<add name="Excel07ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR={1}'"/>
我无法弄清楚这个错误。任何人都可以帮忙吗?