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

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

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

2.最重要的

MySqlDataAdapter mysqlad = new MySqlDataAdapter(sqlstr, mysqlcon);
MySqlCommandBuilder mcb = 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");

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

你可能感兴趣的:(command)