SqlDataAdapter daRegister=new SqlDataAdapter(strSql,cnnRegister);
daRegister.Fill(dsRegister);//删除一行
dsRegister.Tables[0].Rows[4].Delete();
dsRegister.Tables[0].AcceptChanges();daRegister.Update(dsRegister);执行后数据依然存在,为什么啊?谢谢!
daRegister.Fill(dsRegister);//删除一行
dsRegister.Tables[0].Rows[4].Delete();
dsRegister.Tables[0].AcceptChanges();daRegister.Update(dsRegister);执行后数据依然存在,为什么啊?谢谢!
dc.ExecuteNonQuery();
那绑定到datagrid的时候,取得用户所要删除的行,
int intRow=grdData.CurrentCell.RowNumber;而这时我想删除这一行,并且在数据库中删除,
这样的话就不能通过
dsRegister.Tables[0].Rows[intRow].Delete();
dsRegister.Tables[0].AcceptChanges();这种方式来删除了?必须要用SQL语句吗?本人初学,望大家多多指教。
SqlCommandBuilder cb = new SqlCommandBuilder(daRegister);
daRegister.Fill(dsRegister);
dsRegister.Tables[0].Rows[4].Delete();
dsRegister.Tables[0].AcceptChanges();daRegister.Update(dsRegister);
应该可以了
daRegister.Update(dsRegister);,有return value,你应该加判断
也可能有exception,你也要处理的
SqlCommandBuilder cb = new SqlCommandBuilder(daRegister);声明了这个对象,但没有使用,对数据库不会产生影响啊
daRegister.Fill(dsRegister);//删除一行
dsRegister.Tables[0].Rows[4].Delete();
//dsRegister.Tables[0].AcceptChanges();daRegister.Update(dsRegister);楼主,不要写这句话:dsRegister.Tables[0].AcceptChanges();
更新就可以了
不过还是要加
SqlCommandBuilder cb = new SqlCommandBuilder(daRegister);
不然系统出错,没有update/delete command不过为什么AcceptChanges以后就不能update了?
DataAdapter.Update应该至是update changed rows
如果已经AcceptChanges
DataAdapter.GetChanges() return 0 row
不能再upate
SqlCommandBuilder cb = new SqlCommandBuilder(daRegister);
daRegister.Fill(dsRegister);dsRegister.Tables[0].Rows[0].Delete();
if (daRegister.Update(dsRegister.GetChanges()) >0)
dsRegister.Tables[0].AcceptChanges();
DataAdapter.Update应该至是update changed rows
如果已经AcceptChanges
DataAdapter.GetChanges() return 0 row
不能再upate
SqlCommandBuilder cb = new SqlCommandBuilder(daRegister);
daRegister.Fill(dsRegister);dsRegister.Tables[0].Rows[0].Delete();
if (daRegister.Update(dsRegister.GetChanges()) >0)
dsRegister.Tables[0].AcceptChanges();