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