[英]how to read from .csv file and store in database in asp.net using c#?
[英]I am not able to read from Excel file and store into database using asp.net in c#?
我正在這樣做閱讀:
private bool writetoven(string xlspath)
{
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString)
try
{
OleDbCommand ocmd = new OleDbCommand("select * from [Sheet1$]", excelConnection);
excelConnection.Open();
OleDbDataReader odr = ocmd.ExecuteReader();
string vcode = "";
string pswd = "";
string vname = "";
while (odr.Read())
{
vcode = valid(odr, 0);
pswd = valid(odr, 1);
vname = valid(odr, 2);
insertdataintosql(vcode,pswd,vname);
}
excelConnection.Close();
return true;
}
catch (DataException)
{
return false;
}
finally
{
lblmsg4.Text = "Data Inserted Sucessfully";
}
}
和我的連接字符串是這樣的:
excelConnectionString = "provider=Microsoft.jet.oledb.4.0;data source=" +
filepath1 +
";extended properties='Excel 8.0;HDR=YES;'";
但我得到一個錯誤
Microsoft Jet數據庫引擎無法打開文件“”。 它已經由另一個用戶獨占打開,或者您需要權限才能查看其數據。
1574行:OleDbConnection excelConnection =新的OleDbConnection(excelConnectionString);
1575行:
1576行:excelConnection.Open();
1577行:
1578行:
似乎該文件仍處於打開狀態,但它沒有打開,我已經檢查了運行過程,並且它不存在
現在我該怎么辦? ...我的Excel工作表已關閉,但出現此錯誤
我在我的com上沒有Microsoft訪問權限,這可能是一個問題
這個問題與我使用的文件上傳控件有關嗎?
好吧,錯誤提示:
無法打開文件“。
因此,似乎您的Excel連接字符串似乎無效-那里沒有有效的Excel文件名!
您何時何地設置 Excel連接字符串?
您當時使用的filepath1
是否有效?
它包含有效的Excel文件名嗎?
更新:為什么我不明白是:您將xlspath
作為參數傳遞給您的方法-但是,您似乎沒有在任何地方使用該xlspath-最肯定的是不會將excelConnectionString
連接在一起...。
private bool writetoven(string xlspath)
{
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString)
您可以在創建連接之前在此行上設置一個斷點excelConnectionString
什么樣的嗎? 難道xlspath
包含vendor.xls
但您的Excel連接字符串甚至從未設置為該值?
您的excel文件在Microsoft Excel中打開。 關閉Excel窗口,一切都會好起來。
確保您的Web應用程序所運行的帳戶對該文件具有權限。
另外,由於您不使用路徑,而僅使用文件名,因此可能找不到它所在的文件。 文件相對於Web應用程序位於何處?
System.IO.File.ReadAllBytes(filepath1)是否成功或失敗?
由於您正在處理文件上傳:
用戶正在通過瀏覽器從其計算機上載,並且文件在發布響應中被傳輸到您的服務器。 參見: http : //blog.divergencehosting.com/2009/03/12/upload-read-parse-file-aspnet/
即使您擁有完整路徑,也無法從服務器訪問用戶計算機上的文件。 瀏覽器將在uploadControl.PostedFile.InputStream;
向您發送文件的uploadControl.PostedFile.InputStream;
其中uploadControl是asp:FileUpload控件的名稱。
然后,您需要將此流保存到服務器上的文件位置,並提供連接字符串的完整路徑。
如果您使用EPPlus之類的方法而不是OleDbConnection來讀取文件,則可以使用內存中的流而不是先保存文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.