我正在开发一个系统,该系统应将Excel文件上载到GridView,然后单击按钮即可将GridView项保存到SQL表中。我做了整个事情,并在localhost中执行,没有任何错误。但是,当我将系统上传到服务器时,将Excel文件上传到GridView时出现错误。 以下是我在尝试捕获异常中遇到的错误。
FileShare共享,Int32 bufferSize,FileOptions选项,System.IO.FileStream..ctor(字符串路径,FileMode模式)(位于System.Web.HttpPostedFile.SaveAs(字符串文件名),位于StyleOperations.Operations处的String msgPath,布尔bFromProxy) .uploadLinkButton_Click(Object sender,EventArgs e)
我在服务器中创建了文件夹Uploads
,并尝试了。但是,我仍然遇到相同的错误。下面我提到了我的代码和Excel File格式,有人可以帮助我。先感谢您。
protected void uploadLinkButton_Click(object sender, EventArgs e)
{
try
{
string Constr = "";
string ext = Path.GetExtension(StyleOperationsFileUpload.FileName).ToLower();
string path = Server.MapPath("~/Uploads/" + StyleOperationsFileUpload.FileName);
StyleOperationsFileUpload.SaveAs(path);
if (ext.Trim() == ".xls")
{
Constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
}
else if (ext.Trim() == ".xlsx")
{
Constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
}
string query = "SELECT * FROM [Sheet1$]";
OleDbConnection conn = new OleDbConnection(Constr);
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
OleDbCommand cmd = new OleDbCommand(query, conn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
UploadGridView.DataSource = ds.Tables[0];
UploadGridView.DataBind();
conn.Close();
}
catch (Exception ex)
{
Response.Write("<script>alert('Please Restart the system')</script>" + ex);
}
}
Excel文件格式如下。相同的格式将是GridView的格式。
| 1 |DESCRIPTION| SMV |SEQ NO
| 2 | Des1 | 1.2 | 1
| 3 | Des2 | 2.5 | 2
| 4 | Des3 | 5.8 | 3
| 5 | Des4 | 4.2 | 4
答案 0 :(得分:0)
以下代码的用途是什么
get_default_field_names
注意:您已经将工作表名称硬编码为Sheet1 $,我认为应该是动态的