为什么我在用自动命令生成以后,用GetInsertCommand().CommandText.ToString()取得的字符串中的value()全部为?,然后在运行以后报错:操作必须使用一个可更新的查询;

解决方案 »

  1.   

    哦,代码如下:
                            dataTable =new DataTable();
    dataAdapter = new OleDbDataAdapter("select * from table1  ",oleDbConnection);
    dataAdapter.TableMappings.Add("Tables","table1  ");
    dataSet = new DataSet();
    dataSet.CaseSensitive =true;
    dataAdapter.Fill(dataSet,"table1  ");
    dataTable =dataSet.Tables["table1  "];
    DataColumn myColumn;
    myColumn = new DataColumn();
    myColumn.DataType = System.Type.GetType("System.String");
    myColumn.ColumnName= "zl_indx";
    DataColumn[] dc= new DataColumn[1];
    dataTable.PrimaryKey=dc;
    dataAdapter.FillSchema(dataTable,System.Data.SchemaType.Mapped);
    cmdBuilder = new OleDbCommandBuilder(dataAdapter);
    cmdBuilder.QuotePrefix="[";
    cmdBuilder.QuoteSuffix="]";
                            myDataRow =Record.pubDataTable.NewRow();
    myDataRow["ZL_INDX"]=i*2*Fan+j+1;
    myDataRow["ZL_DM"]=x0;
                            . 
                            .
                            .
                            .
                            .
                            Record.pubDataTable.Rows.Add(myDataRow);
         dataAdapter.InsertCommand=cmdBuilder.GetInsertCommand();
                            dataTable.GetChanges(DataRowState.Added);
        dataAdapter.Update(dataSet,"地质曲线交点".ToString());
      

  2.   

    dataAdapter.InsertCommand=cmdBuilder.GetInsertCommand();
    把这句去掉 看看正常不
      

  3.   

    你好代码好像写得有点复杂,用SqlClient包中的东东时没有这样写过,是不是oleDb的东东都也这样写啊
    QQ114236121
      

  4.   

    OleDbDataAdapter da = new OleDbDataAdapter( "select * from table1", conn );
    da.fill( ds, "table1" );...OleDbCommandBuilder cb = new OleDbCommandBuilder( da );
    da.Update( ds.Tables["table1"] );好像关键代码就是以上四句哦
      

  5.   

    操作必须使用一个可更新的查询
    ——-你把你的ACCESS数据库的安全属性设置为EveryOne可以访问,然后retry至于说参数是?这个你不用关心。
      

  6.   

    .NET的OLEDB data provider对参数就是使用“?”表示的
    这个没有问题
      

  7.   

    “操作必须使用一个可更新的查询”先看看楼上的方法吧也可以先看看你的insert语句有没有生成错误(问号是没有错的)