【发布时间】:2013-12-27 16:51:27
【问题描述】:
我正在尝试通过服务器中的以下代码将excel文件上传到sql数据库中
我可以在服务器中打开 excel 文件,但我无法通过 asp 页面将此文件上传到 sql。即使我通过文件浏览器控件选择文件,它也显示未找到文件。我浏览时屏幕上显示文件名。但是当我单击上传按钮时找不到它。请帮助我
我的 C# 代码是这样的
protected void btnUpload_Click(object sender, EventArgs e)
{
if (fileuploadExcel.HasFile)
{
SqlConnection conn1 = new SqlConnection(str);
//file upload path
string path = fileuploadExcel.PostedFile.FileName;
//Create connection string to Excel work book
string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\" + path + ";Extended Properties=Excel 12.0;Persist Security Info=False";
//Create Connection to Excel work book
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
//Create OleDbCommand to fetch data from Excel
OleDbCommand cmd = new OleDbCommand("Select [Date],[PName],[SQE Reived],[SQE processed] from [Sheet1$]", excelConnection);
excelConnection.Open();
OleDbDataReader dReader;
dReader = cmd.ExecuteReader();
SqlBulkCopy sqlBulk = new SqlBulkCopy(conn1);
//Give your Destination table name
conn1.Open();
sqlBulk.DestinationTableName = "SQE";
sqlBulk.WriteToServer(dReader);
excelConnection.Close();
}
}
我的asp页面macrkup
<table>
<tr>
<td>
<asp:Button ID="Button1" Text="Upload Productivity data in to iConnect" runat="server" CssClass="style88"
Font-Bold="False" Height="36px" Width="750px" Font- Names="Calibri" ForeColor="White" Font-Size ="large" Border-radius="0px 0px 0px 0px"
></asp:Button>
</td>
</tr>
<tr>
<td>
<a href="SQEprTemplate.xlsx">Download Template for upload</a>
<br />
<br />
</td>
<tr>
<td>
<asp:Panel ID="Panel1" runat="server">
<asp:FileUpload ID="fileuploadExcel" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload"
onclick="btnUpload_Click" />
<br/>
</asp:Panel>
</td>
</tr>
</tr>
</table>
【问题讨论】:
-
尝试先上传文件,正如史蒂夫提到的那样。他的例子也涵盖了格兰特温尼提到的问题。