Example #1
0
        /*
         * 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;
            }
        }
Example #2
0
        /// <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));
        }
Example #3
0
        /// <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);
            }
        }
Example #4
0
        /// <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;
            }
        }
Example #5
0
 /// <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));
 }
Example #6
0
 /// <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));
 }
Example #7
0
 /// <summary>
 /// 更新数据,model必须指定主键,返回更新的行数
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public int Update(IModel.IModel model)
 {
     return(dbHelper.UpdateTrans(model));
 }
Example #8
0
 /// <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));
 }
Example #9
0
 public abstract int UpdateTrans(IModel.IModel model, string updateWhere);
Example #10
0
 public abstract int UpdateTrans(IModel.IModel model);
Example #11
0
 public abstract int Update(IModel.IModel model);
Example #12
0
 public abstract int AddTrans(IModel.IModel model, bool isBackIdentity);
Example #13
0
 public abstract object Add(IModel.IModel model, bool isBackIdentity);