//string constr = "Max Pool Size=5;Min Pool Size=1;Pooling=true;persist security info=false;User Id=ips2;Password=ips2;Data Source=oa";        string constr1 = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source=d:/file.xls;Extended Properties=Excel 8.0";
       
        OleDbConnection conn1 = new OleDbConnection(constr1);        //OracleConnection conn = new OracleConnection(constr);       // OracleDataAdapter oda = new OracleDataAdapter("select * from TIPS_ACC_ACCOUNT", conn);        OleDbDataAdapter da = new OleDbDataAdapter("select * from [sheet1$]",conn1);        DataSet ds = new DataSet();
       // OracleCommandBuilder objcmdBuilder = new OracleCommandBuilder(oda);        OleDbCommandBuilder objcmdBuilder = new OleDbCommandBuilder(da);
        da.UpdateCommand = objcmdBuilder.GetUpdateCommand();
        da.InsertCommand = objcmdBuilder.GetInsertCommand();
        da.DeleteCommand = objcmdBuilder.GetDeleteCommand(); 
        da.Fill(ds, "[sheet1$]");
        ds.Tables[0].Rows[0][2] = "001";        da.Update(ds, "[sheet1$]");为什么Oracle可以,Oledb就不行??

解决方案 »

  1.   

    这个到没有遇到过,可能是DataAdapter根据查询语句自动生成修改,添加,删除语句时遇到问题,如果真的不可以的话,怀疑时 [sheet1$]这个表名的问题
      

  2.   


            string constr1 = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source=d:/file.xls;Extended Properties=Excel 8.0";
           
            OleDbDataAdapter da = new OleDbDataAdapter("select * from [sheet1$]",constr1);
            DataSet ds = new DataSet();        OleDbCommandBuilder objcmdBuilder = new OleDbCommandBuilder(da);        da.Fill(ds, "[sheet1$]");
            ds.Tables[0].Rows[0][2] = "001";        da.Update(ds, "[sheet1$]"); 
      

  3.   

    好像SqlDataAdapter,OracleDataAdapter都可以,就是OledbDataAdapter不行。