当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand问题解决

1.目前看主要因为两种,第一种是select语句没有包含主键列,select *  就可以解决。或 select 主键列

 

这里的主键是指的primary key而不是unique key

 

2.最重要的

 

 MySqlDataAdapter mysqlad = new MySqlDataAdapter(sqlstr, mysqlcon);
        MySqlCommandBuilder sb1 = new MySqlCommandBuilder(mysqlad);
        DataSet ds = new DataSet();
        mysqlad.Fill(ds, "Table1");
        DataRow dr = ds.Tables["Table1"].Rows[0];
        if (Convert.ToInt32(dr["newsstate"]) == 0)
        {
            dr["newsstate"] = 1;
        }
        else
        {
            dr["newsstate"] = 0;
        }
       
        mysqlad.Update(ds, "Table1");

 

sb1 到头来也没用过,但只要有这一句,update就不会再报上述错误,神奇吧

你可能感兴趣的:(当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand问题解决)