dataset 更新数据库 删除 实例: public bool UpdateRuleRight(int ruleId, int[] delRightId) { bool isSuc = false; DataBase db = DataBaseFactory.CreateDataBase(DBConnectionString.DB_ADMIN); DataSet dsRuleRight = new DataSet(); try { DbCommand command = db.GetStoredProcCommand("spa_sys_get_rule_right"); string tbName = "rule_right"; db.LoadDataSet(command, dsRuleRight, tbName); DataTable dtUserRight = dsRuleRight.Tables[tbName]; foreach (int intId in delRightId) { if (intId != 0) { dtUserRight.Select(string.Format("rule_id='{0}' and right_id='{1}'", ruleId, intId))[0].Delete(); } } DbCommand deleteCommand = db.GetStoredProcCommand("spa_sys_delete_rule_right"); db.AddInParameter(deleteCommand, "rule_id", DbType.Int32, "rule_id", DataRowVersion.Current); db.AddInParameter(deleteCommand, "right_id", DbType.Int32, "right_id", DataRowVersion.Current); int rowsAffected = db.UpdateDataSet(dsRuleRight, tbName, null, null, deleteCommand, UpdateBehavior.Standard); if (rowsAffected > 0) { isSuc = true; } } catch (Exception ex) { LogUtility.Add(ex); isSuc = false; } return isSuc; } 综合实例:(部分源码) public bool UpdateUserRight(int userId,int[] addRightId, int[] delRightId) { bool isSuc = false; DataBase db = DataBaseFactory.CreateDataBase(DBConnectionString.DB_ADMIN); DataSet dsUserRight = new DataSet(); try { DbCommand command = db.GetStoredProcCommand("spa_sys_get_user_right"); string tbName = "user_right"; db.LoadDataSet(command, dsUserRight, tbName); DataTable dtUserRight = dsUserRight.Tables[tbName]; foreach (int intId in addRightId) { if (intId != 0) { dtUserRight.Rows.Add(new object[] { userId, intId }); } } foreach (int intId in delRightId) { if (intId != 0) { dtUserRight.Select(string.Format("user_id='{0}' and right_id='{1}'", userId, intId))[0].Delete(); } } //dtUserRule.AcceptChanges(); //加后报错 注意 DbCommand insertCommand = db.GetStoredProcCommand("spa_sys_add_user_right"); db.AddInParameter(insertCommand, "user_id", DbType.Int32, "user_id", DataRowVersion.Current); db.AddInParameter(insertCommand, "right_id", DbType.Int32, "right_id", DataRowVersion.Current); DbCommand deleteCommand = db.GetStoredProcCommand("spa_sys_delete_user_right"); db.AddInParameter(deleteCommand, "user_id", DbType.Int32, "user_id", DataRowVersion.Current); db.AddInParameter(deleteCommand, "right_id", DbType.Int32, "right_id", DataRowVersion.Current); int rowsAffected = db.UpdateDataSet(dsUserRight, tbName, insertCommand, null, deleteCommand, UpdateBehavior.Standard); if (rowsAffected > 0) { isSuc = true; } } catch (Exception ex) { LogUtility.Add(ex); isSuc = false; } return isSuc; }