[英]The Microsoft Jet database engine could not find the object
用戶在此處從那里的系統瀏覽到Excel文件,然后將數據上載到sql數據庫表。
我在以下代碼中收到此錯誤: Microsoft Jet數據庫引擎找不到對象'C:\\ Program Files \\ Microsoft Visual Studio 9.0 \\ Common7 \\ IDE \\ Student Registration1.xls'。 確保對象存在,並且正確拼寫了它的名稱和路徑名。
我不知道為什么要問這個路徑? C:\\ Program Files \\ Microsoft Visual Studio 9.0 \\ Common7 \\ IDE \\
protected void import_xls_Click(object sender, EventArgs e)
{
try
{
if (xmlupload.HasFile)
{
string path = xmlupload.PostedFile.FileName;
string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
excelConnection.Open();
OleDbCommand cmd = new OleDbCommand("select * from [Sheet2$]", excelConnection);
OleDbDataReader dReader = cmd.ExecuteReader();
SqlBulkCopy sqlBulk = new SqlBulkCopy(SqlConnectionstring.mainConnectionString, SqlBulkCopyOptions.KeepIdentity);
sqlBulk.DestinationTableName = "dbo.studentA";
sqlBulk.ColumnMappings.Add("UserName", "UserName");
sqlBulk.ColumnMappings.Add("Password", "Password");
sqlBulk.ColumnMappings.Add("Name", "Name");
sqlBulk.ColumnMappings.Add("Standard", "Standard");
sqlBulk.ColumnMappings.Add("Division", "Division");
sqlBulk.ColumnMappings.Add("SchoolName", "SchoolName");
sqlBulk.ColumnMappings.Add("Language", "Language");
sqlBulk.ColumnMappings.Add("ExamStatus", "ExamStatus");
sqlBulk.ColumnMappings.Add("Result", "Result");
sqlBulk.WriteToServer(dReader);
lblmsg.Visible = true;
lblmsg.Text = "Your data uploaded successfully";
excelConnection.Close();
}
}
catch (Exception ex)
{
lblmsg.Visible = true;
lblmsg.Text = ex.Message.ToString();
}
SqlConnectionstring.cs:
public class SqlConnectionstring
{
public SqlConnectionstring()
{
//
// TODO: Add constructor logic here
//
}
public static readonly string mainConnectionString = ConfigurationManager.ConnectionStrings["constring"].ToString();
}
我將嘗試將文件保存在工作目錄中,然后嘗試從那里打開。
如果fileName沒有路徑,則只有在文件名位於目錄中時,連接才能找到該文件。
當前目錄(通常是程序啟動的位置)
string savePath = @"c:\temp\uploads";
if (xmlupload.HasFile)
{
string fileName = xmlupload.FileName;
savePath = Path.Combine(savePath, fileName);
xmlupload.SaveAs(savePath);
string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
savePath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
....
在Web服務器上,為避免權限問題,最好將文件保留在站點根文件夾的子文件夾中。
在這種情況下,可以使用HttpServerUtility.MapMath方法對文件夾進行完全限定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.