TempSet2 = new DataSet();
     StrSelect = "select * from " + SaveFileName + " where recn()=1";
     Da = new OdbcDataAdapter(StrSelect, ThisConnIn);
     Da.Fill(TempSet2, SaveFileName);
     TempSet2.Tables[0].Merge(TempSet.Tables[0]);
     Da.Update(TempSet2.Tables[0]);    程序没有报错!代码正常运行,目标数据库是DBF文件,除了Update语句没有反应外其它语句运行正常,我使用的是ODBC DRIVER 请问我还有什么没有写漏了吗?

解决方案 »

  1.   

    static private DataSet CreateCommandAndUpdate(
        string connectionString,
        string queryString)
    {
        DataSet dataSet = new DataSet();    using (OleDbConnection connection =
                   new OleDbConnection(connectionString))
        {
            connection.Open();
            OleDbDataAdapter dataAdapter =
                new OleDbDataAdapter();
            dataAdapter.SelectCommand =
                new OleDbCommand(queryString, connection);
            OleDbCommandBuilder commandBuilder =
                new OleDbCommandBuilder(dataAdapter);        dataAdapter.Fill(dataSet);        // Code to modify data in the DataSet here.        //Without the OleDbCommandBuilder this line would fail.
            dataAdapter.Update(dataSet);
        }
        return dataSet;
    }
      

  2.   

    NOTE: //Without the OleDbCommandBuilder this line would fail.
      

  3.   

    DataSet是本地的,你做的更新知识更新本地的内容,你需要再次将DataSet中的内容保存到数据库中的!
      

  4.   

    要对更新部分单独使用SqlCommand进行处理,可以将更新的SqlCommand付给SqlDataAdapter的Update命令.
      

  5.   

    to: wangsaokui(无间道III(终极无间)) 
    你的意思是: OleDbCommandBuilder commandBuilder =
                new OleDbCommandBuilder(dataAdapter); 生成SQL命令。
    但有两个问题,
    1、使用OleDbCommandBuilder 需要使用SelectCommand 来提取元数据,我应该如何去写这个SelectCommand 呢?我需要的是DATASET 中的数据!2、使用OleDbCommandBuilder 需要主键信息,但我的表没有设置主键!请指教一下,谢谢
      

  6.   

    最好设置主键。没有设置主键,可以通过自定义InsertCommand来更新。OdbcCommand InsertCommand=New OdbcCommand ();
    InsertCommand.CommandText="...";
    Da.InsertCommand=InsertCommand;
    Da.Update(...);
      

  7.   

    OdbcCommand InsertCommand=New OdbcCommand ();
    InsertCommand.CommandText="INSERT INTO yourTable Values(@Col1,@Col2,@Col3)";
    InsertCommand.Parameters.Add("@Col1",列类型,列长度,源列);
    InsertCommand.Parameters.Add("@Col2",列类型,列长度,源列);
    ...添加其它ParameterDa.InsertCommand=InsertCommand;
    Da.Update(...);
      

  8.   

    OdbcDataAdapter需要指定InsertCommand和UpdateCommand,否则都有可能出错或者没有作用.
      

  9.   

    我需要清空数据库,然后导入一些我处理过的相同结构数据进去,所以不能用InsertCommand!
      

  10.   

    但在C#中操作DBF文件时,不能删除记录,只能标上一个删除标记!有没好的办法解决啦? 期待ING。。
      

  11.   

    使用InsertCommand和UpdateCommand,为什么
      

  12.   

    不能用InsertCommand,不是要插入新行吗?
      

  13.   

    我是插入DATASET的全部数据,但数据库的数据全部不保留,但在C#中操作DBF文件时,不能删除记录,只能标上一个删除标记!所以不能用DLETE + INSERT。如果用可以的话,请贴一下代码,谢谢!!