/* * private void addSqlVal(StringBuilder strVal, string fieldType, string name) * { * strVal.Append("@" + name + ","); * } * private void UpdateSqlVal(StringBuilder strVal, string fieldType, string name) * { * strVal.Append(name + "=@" + name + ","); * } */ /// <summary> /// 根据Model数据,插入一条新数据,Model内可指定主键或不指定 /// </summary> /// <param name="model">需要添加的实体类</param> /// <param name="sql">返回添加sql语句</param> /// <returns>参数列表</returns> public DbParameter[] SetSql_Add(IModel.IModel model, ref string sql) { StringBuilder strSql = new StringBuilder("insert into " + model.Transaction_TableName + "( "); StringBuilder strVal = new StringBuilder(" values("); Dictionary <string, FieldInfo> modelInfo = model.getModelInfo(); List <SqlParameter> parameterList = new List <SqlParameter>(); try { foreach (KeyValuePair <string, FieldInfo> kv in modelInfo) { string name = kv.Key; //属性名称 SqlDbType fieldType = kv.Value.fieldType; //类型 string val = kv.Value.fieldvalue; //属性值 strVal.Append("@" + name + ","); strSql.Append(name + ","); SqlParameter param = new SqlParameter("@" + name, val); param.SqlDbType = fieldType; parameterList.Add(param); } strSql.Remove(strSql.Length - 1, 1); strVal.Remove(strVal.Length - 1, 1); strSql.Append(")" + strVal.ToString() + ")"); sql = strSql.ToString(); return((SqlParameter[])parameterList.ToArray()); } catch (Exception e) { throw e; } }
/// <summary> /// 根据Model里面的主键和其他字段的新值修改数据 /// </summary> /// <param name="model">修改的实体类</param> /// <returns>被修改的行数</returns> public override int Update(IModel.IModel model) { string sql = ""; SqlParameter[] dp = (SqlParameter[])this.SetSql_Update(model, ref sql); foreach (SqlParameter item in dp) { this.Parameters.Add(item); } return(this.ExecuteNonQuery(sql)); }
/// <summary> /// 提供一个Model插入一条数据,返回插入的行数或插入的主键ID /// </summary> /// <param name="model"></param> /// <param name="isBackIdentity">ture->返回新插入的数据的主键,false->返回插入的行数</param> /// <returns></returns> public override int Add(IModel.IModel model, bool isBackIdentity) { string sql = ""; SqlParameter[] dp = (SqlParameter[])this.SetSql_Add(model, ref sql); foreach (SqlParameter item in dp) { this.Parameters.Add(item); } if (isBackIdentity) { sql += ";select @@identity;"; // 返回插入数据的 ID 值 object obj = this.ExecuteScalar(sql); this.Parameters.Clear(); return(Convert.ToInt32(obj)); } else { int r = this.ExecuteNonQuery(sql); this.Parameters.Clear(); return(r); } }
/// <summary> /// 根据Model内的主键修改数据,Model内必须指定主键 /// </summary> /// <param name="model">需要修改的实体类</param> /// <param name="sql">返回修改sql语句</param> /// <returns>参数列表</returns> public DbParameter[] SetSql_Update(IModel.IModel model, ref string sql) { StringBuilder strSql = new StringBuilder("update " + model.Transaction_TableName + " set "); List <SqlParameter> parameterList = new List <SqlParameter>(); Dictionary <string, FieldInfo> modelInfo = model.getModelInfo(); try { foreach (KeyValuePair <string, FieldInfo> kv in modelInfo) { string name = kv.Key; //属性名称 SqlDbType fieldType = kv.Value.fieldType; //类型 string val = kv.Value.fieldvalue; //属性值 if (name.ToLower().Equals(model.Transaction_PrimaryKey.ToLower())) //不修改主键 { parameterList.Add(new SqlParameter("@" + model.Transaction_PrimaryKey, val)); } else { //UpdateSqlVal(strSql, fieldType, name); strSql.Append(name + "=@" + name + ","); SqlParameter param = new SqlParameter("@" + name, val); param.SqlDbType = fieldType; parameterList.Add(param); } } strSql.Remove(strSql.Length - 1, 1); // 去掉之前多加的一个逗号 ',' strSql.Append(" where " + model.Transaction_PrimaryKey + "=@" + model.Transaction_PrimaryKey); sql = strSql.ToString(); return((SqlParameter[])parameterList.ToArray()); } catch (Exception e) { throw e; } }
/// <summary> /// √提供一个 Model 插入一条数据,返回新插入的数据的主键或者插入的行数(1\0) /// </summary> /// <param name="model"></param> /// <param name="isBackIdentity"></param> /// <returns>true->返回主键, false->返回1或0</returns> public int Add(IModel.IModel model, bool isBackIdentity) { return(dbHelper.Add(model, isBackIdentity)); }
/// <summary> /// /// </summary> /// <param name="model"></param> /// <param name="strWhrere"></param> /// <returns></returns> public int Update(IModel.IModel model, string strWhrere) { return(dbHelper.UpdateTrans(model, strWhrere)); }
/// <summary> /// 更新数据,model必须指定主键,返回更新的行数 /// </summary> /// <param name="model"></param> /// <returns></returns> public int Update(IModel.IModel model) { return(dbHelper.UpdateTrans(model)); }
/// <summary> /// 根据Model内数据修改数据库,Model中可以不提供主键 /// </summary> /// <param name="model"></param> /// <param name="where">sql语句中的 where 条件</param> /// <returns>成功修改的行数</returns> public int Update(IModel.IModel model, string where) { return(dbHelper.Update(model, where)); }
public abstract int UpdateTrans(IModel.IModel model, string updateWhere);
public abstract int UpdateTrans(IModel.IModel model);
public abstract int Update(IModel.IModel model);
public abstract int AddTrans(IModel.IModel model, bool isBackIdentity);
public abstract object Add(IModel.IModel model, bool isBackIdentity);