.NET語句:
string sqlstr = "insert into purchase ( po_number ) select po_number FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=D:\\net\\PRPO\\excel\\Purchase Document.xls;User ID=sa;Password=123456;Extended properties=Excel 8.0')...[Purchase Document$]";Purchase Document.xls未打開,路徑也對
錯誤提示:
The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" reported an error. Authentication failed.
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".
OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "無法啟動您的應用程式。工作群組的資料檔案不見了或被另一個使用者以獨佔方式開啟。".

解决方案 »

  1.   

    string strconn = null;
               string ExcelName = null;
               DataSet set = new DataSet();
               try
               {
                   if (ExcelType.ToLower() == "xlsx")
                   {
                       strconn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
                   }
                   else if (ExcelType.ToLower() == "xls")
                   {
                       strconn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FilePath + ";Extended Properties=Excel 8.0";
                   }
                   //string strconn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\\COTD\\Gertest\\test.xlsx;Extended Properties=\"Excel 12.0;HDR=YES\"";//
                   OleDbConnection conn = new OleDbConnection(strconn);
                   conn.Open();
                   DataTable Edt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                   
                   for (int i = 0; i < Edt.Rows.Count; i++)
                   {
                       DataTable dt = new DataTable();
                       ExcelName = Edt.Rows[i][2].ToString().Trim();
                       string sqlstr = "select * from [" + ExcelName + "]";
                       OleDbDataAdapter oda = new OleDbDataAdapter(sqlstr, conn);
                       oda.Fill(dt);//将数据存放在DataTable里面
                       set.Tables.Add(dt);//将DataTable放到DataSet里去
                   }
                   
                   //gv.DataSource = dt;
                   //gv.DataBind();
                   conn.Close();//关闭连接
                   
               }
               catch (OleDbException ex)
               {              
                 
               }
               return set;
      

  2.   

    移印鋼板 4' X 3'錯誤:
    Incorrect syntax near 'X'似乎是單引號的問題