this.oleDbDataAdapter1的selectcommand,insertcommand,updatecommand,deletecommand设置了吗,表映射呢

解决方案 »

  1.   

    参照如下代码:

    // 
    // sqlInsertCommand1
    // 
    this.sqlInsertCommand1.CommandText = "INSERT INTO student(stuno, name, sex, address) VALUES (@stuno, @name, @sex, @addr" +
    "ess); SELECT stuno, name, sex, address FROM student WHERE (stuno = @stuno)";
    this.sqlInsertCommand1.Connection = this.sqlConnection1;
    this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@stuno", System.Data.SqlDbType.Int, 4, "stuno"));
    this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@name", System.Data.SqlDbType.Int, 4, "name"));
    this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@sex", System.Data.SqlDbType.Int, 4, "sex"));
    this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@address", System.Data.SqlDbType.Int, 4, "address"));
    // 
    // sqlUpdateCommand1
    // 
    this.sqlUpdateCommand1.CommandText = @"UPDATE student SET stuno = @stuno, name = @name, sex = @sex, address = @address WHERE (stuno = @Original_stuno) AND (address = @Original_address OR @Original_address IS NULL AND address IS NULL) AND (name = @Original_name OR @Original_name IS NULL AND name IS NULL) AND (sex = @Original_sex OR @Original_sex IS NULL AND sex IS NULL); SELECT stuno, name, sex, address FROM student WHERE (stuno = @stuno)";
    this.sqlUpdateCommand1.Connection = this.sqlConnection1;
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@stuno", System.Data.SqlDbType.Int, 4, "stuno"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@name", System.Data.SqlDbType.Int, 4, "name"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@sex", System.Data.SqlDbType.Int, 4, "sex"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@address", System.Data.SqlDbType.Int, 4, "address"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_stuno", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "stuno", System.Data.DataRowVersion.Original, null));// sqlDeleteCommand1
    // 
    this.sqlDeleteCommand1.CommandText = @"DELETE FROM student WHERE (stuno = @Original_stuno) ";
    this.sqlDeleteCommand1.Connection = this.sqlConnection1;
    this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_stuno", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "stuno", System.Data.DataRowVersion.Original, null));try
    {
    sqlDa.Update(dt.GetChanges,"customers"); 
    return true;
    }
    catch(System.Data.SqlClient.SqlException ex)
    {
    myTran.Rollback();
    return false;

    finally
    {
    conn.Close();
    }
      

  2.   

    你应该使用上SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter)
    这样就可以了,这个可以保证你对dataset的更新,反馈到数据库的更新。
      

  3.   

    可以更新!你在.net的ide中直接拖出空件,建立好数据连接及绑定后,再this.oleDbDataAdapter1.Update就可以了,其中自动增加了很多东西
    我没有仔细看,只是试了一下:)
      

  4.   

    SqlDataAdapter custDA = new SqlDataAdapter(commandText, connection);
    SqlCommandBuilder custCB = new SqlCommandBuilder(custDA);
    custDA.TableMappings.Add(tableName, ds.Tables[0].ToString());
      

  5.   

    bian8021:
        我第一行就写了CommandBuilder,有效就好了
     xiaodele:
        this.oleDbDataAdapter1.Fill(custDS,"TrackStatus"),不是已经添加了
      

  6.   

    SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter)
    用这个最好更新对象和语句自动生成了。。
      

  7.   

    新建了一个一摸一样的表,居然可以存储了,但是原来的表我把所有关系都删除了,还是保存不了,而且也不报错,看来可能是表被破坏了,但是真的感觉DataAdapter应该报错,我还以为我的程序有问题. 还是多谢大家,结贴了