Esempio n. 1
0
        public static List <ProcedureParameter> GetParaFromObj(object obj)
        {
            List <ProcedureParameter> paralist = new List <ProcedureParameter>();

            if (obj == null)
            {
                return(paralist);
            }
            if (obj is List <RLib.DB.ProcedureParameter> )
            {
                return(obj as List <RLib.DB.ProcedureParameter>);
            }
            foreach (var p in obj.GetType().GetProperties())
            {
                object v = p.GetValue(obj, null);
                if (v == null)
                {
                    v = System.DBNull.Value;
                }
                ProcedureParameter para = new ProcedureParameter(p.Name, v);
                paralist.Add(para);
            }
            return(paralist);
        }
Esempio n. 2
0
        /// <summary>参数类型转化</summary>
        /// <param name="Par"></param>
        /// <returns></returns>
        private SqlParameter ParameterTransform(ProcedureParameter Par)
        {
            if (Par.ParType == ProcParType.Default)
            {
                return(new SqlParameter(Par.Name, Par.Value));
            }
            SqlParameter p = new SqlParameter();

            p.ParameterName = Par.Name;
            switch (Par.ParType)
            {
            case ProcParType.Int16:
                p.SqlDbType = SqlDbType.SmallInt;
                break;

            case ProcParType.Int32:
                p.SqlDbType = SqlDbType.Int;
                break;

            case ProcParType.Int64:
                p.SqlDbType = SqlDbType.BigInt;
                break;

            case ProcParType.Single:
                p.SqlDbType = SqlDbType.Real;
                break;

            case ProcParType.Double:
                p.SqlDbType = SqlDbType.Float;
                break;

            case ProcParType.Decimal:
                p.SqlDbType = SqlDbType.Decimal;
                break;

            case ProcParType.Char:
                p.SqlDbType = SqlDbType.Char;
                break;

            case ProcParType.VarChar:
                p.SqlDbType = SqlDbType.VarChar;
                break;

            case ProcParType.NVarchar:
                p.SqlDbType = SqlDbType.NVarChar;
                break;

            case ProcParType.Image:
                p.SqlDbType = SqlDbType.Binary;
                break;

            case ProcParType.DateTime:
                p.SqlDbType = SqlDbType.DateTime;
                break;

            default:
                throw new Exception("未知类型ProcParType:" + Par.ParType.ToString());
            }
            p.Size      = Par.Size;
            p.Direction = Par.Direction;
            switch (Par.Direction)
            {
            case ParameterDirection.Input:
            case ParameterDirection.InputOutput:
                if (Par.Value == null)
                {
                    p.Value = DBNull.Value;
                }
                else
                {
                    p.Value = Par.Value;
                }
                break;
            }
            return(p);
        }