/* * 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内的主键修改数据,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; } }