public channel() { dal = new DAL.Mysql.channel(siteConfig.sysdatabaseprefix); }
/// <summary> /// 删除一条数据 /// </summary> public bool Delete(int id) { //取得Model信息 Model.article_attribute_field model = GetModel(id); //开始删除 using (MySqlConnection conn = new MySqlConnection(DbHelperMySql.connectionString)) { conn.Open(); using (MySqlTransaction trans = conn.BeginTransaction()) { try { //查找关联的频道ID,得到后以备使用 StringBuilder strSql1 = new StringBuilder(); strSql1.Append("select channel_id,field_id from " + databaseprefix + "channel_field "); strSql1.Append(" where field_id=@field_id"); MySqlParameter[] parameters1 = { new MySqlParameter("@field_id", MySqlDbType.Int32, 4) }; parameters1[0].Value = id; DataTable dt = DbHelperMySql.Query(conn, trans, strSql1.ToString(), parameters1).Tables[0]; //删除频道关联的字段表 StringBuilder strSql2 = new StringBuilder(); strSql2.Append("delete from " + databaseprefix + "channel_field"); strSql2.Append(" where field_id=@field_id"); MySqlParameter[] parameters2 = { new MySqlParameter("@field_id", MySqlDbType.Int32, 4) }; parameters2[0].Value = id; DbHelperMySql.ExecuteSql(conn, trans, strSql2.ToString(), parameters2); //重建对应频道的视图 if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { Model.channel modelt = new DAL.Mysql.channel(databaseprefix).GetModel(conn, trans, int.Parse(dr["channel_id"].ToString())); if (modelt != null) { new DAL.Mysql.channel(databaseprefix).RehabChannelViews(conn, trans, modelt, modelt.name); } } } //删除主表 StringBuilder strSql = new StringBuilder(); strSql.Append("delete from " + databaseprefix + "article_attribute_field "); strSql.Append(" where id=@id"); MySqlParameter[] parameters = { new MySqlParameter("@id", MySqlDbType.Int32, 4) }; parameters[0].Value = id; DbHelperMySql.ExecuteSql(conn, trans, strSql.ToString(), parameters); //删除扩展字段表中一列 DbHelperMySql.ExecuteSql(conn, trans, "alter table " + databaseprefix + "article_attribute_value drop column " + model.name); //没有错误确认事务 trans.Commit(); } catch { trans.Rollback(); return(false); } } } return(true); }