예제 #1
0
        private static string ParamCreate(AzMetaCloumEntity azMetaCloum, AzClassCreatProperty classCreatProperty)
        {
            StringBuilder stringBuilder = new StringBuilder();
            MetaDataType  metaDataType  = MetaDataTypeHandle.GetMetaDataType(azMetaCloum.FldType);

            stringBuilder.AddLineStatement("param = new SqlParameter();", 2);
            stringBuilder.AddLineStatement("param.ParameterName = \"@" + azMetaCloum.FldName + "\";", 2);
            if (azMetaCloum.IsOutParam == 0)
            {
                if (azMetaCloum.IsNullable == false)
                {
                    stringBuilder.AddLineStatement($"param.Value={BaseConstants.ParamPer}Item.{azMetaCloum.FldNameTo};", 2);
                }
                else
                {
                    stringBuilder.AddLineStatement($"if ({BaseConstants.ParamPer}Item.{azMetaCloum.FldNameTo}==null)", 2);
                    stringBuilder.AddLineStatement(" {param.Value = System.DBNull.Value;}", 2);
                    stringBuilder.AddLineStatement($"else", 2);
                    stringBuilder.AddLineStatement($"{{ param.Value={BaseConstants.ParamPer}Item.{azMetaCloum.FldNameTo};}};", 2);
                }
            }
            else
            {
                stringBuilder.AddLineStatement("param.Direction = ParameterDirection.Output;}", 2);
            }
            if (metaDataType.CodeSign == 2)
            {
                stringBuilder.AddLineStatement($"param.Size = {azMetaCloum.FldLenCode};", 2);
            }
            stringBuilder.AddLineStatement($"param.SqlDbType = SqlDbType.{metaDataType.DBCodeType};", 2);
            stringBuilder.AddLineStatement("cmd.Parameters.Add(param);", 2);
            stringBuilder.AppendLine();
            return(stringBuilder.ToString());
        }
예제 #2
0
        private static string ParamIdentityPropertyCreate(AzMetaCloumEntity azMetaCloum)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AddLineStatement($"if (c>0)", 3);
            stringBuilder.AddLineStatement($"{{", 4);
            stringBuilder.AddLineStatement($"{BaseConstants.ParamPer}Item.{azMetaCloum.FldNameTo}=({GetCorrectType(azMetaCloum)})cmd.Parameters[\"@getautouid\"].Value;", 4);
            stringBuilder.AddLineStatement($"}}", 4);
            stringBuilder.AppendLine();
            return(stringBuilder.ToString());
        }
예제 #3
0
        public static string GetCorrectType(AzMetaCloumEntity azMetaCloum)
        {
            MetaDataType metaDataType = MetaDataTypeHandle.GetMetaDataType(azMetaCloum.FldType);
            string       ctype        = metaDataType.CodeType;

            if (azMetaCloum.IsNullable == true)
            {
                ctype = metaDataType.CodeGeneric;
            }

            return(ctype);
        }
예제 #4
0
        public static AzMetaCloumEntity KeyFieldFirst(IEnumerable <AzMetaCloumEntity> azMetaCloums)
        {
            var result = azMetaCloums.AsQueryable().Where(m => m.IsKeyField == true).FirstOrDefault();

            if (result == null)
            {
                result             = new AzMetaCloumEntity();
                result.FldName     = "未设置关键定段";
                result.FldType     = "nvarchar";
                result.FldCodeType = "string";
                result.FldNameTo   = "未设置关键定段";
            }
            return(result);
        }
예제 #5
0
        public static string SpParamCreate(AzMetaCloumEntity azMetaCloum)
        {
            StringBuilder stringBuilder = new StringBuilder();
            bool          iscannull     = azMetaCloum.IsNullable != true;
            string        spfld         = GetSpFldName(azMetaCloum.FldName, "P_");
            string        param_name    = GetSpFldName(azMetaCloum.FldName, "param_");

            stringBuilder.AddLineStatement($"SqlParameter {param_name} = new SqlParameter();", 2);
            stringBuilder.AddLineStatement($"{param_name}.ParameterName =\"{azMetaCloum.FldName}\";", 2);
            if (azMetaCloum.IsOutParam == 0)
            {
                if (iscannull)
                {
                    stringBuilder.AddLineStatement($"{param_name}.Value ={BaseConstants.ParamPer}Item.{spfld};", 2);
                }
                else
                {
                    stringBuilder.AddLineStatement($"if ({BaseConstants.ParamPer}Item.{spfld}==null)", 2);
                    stringBuilder.AddLineStatement($"{{{param_name}.Value =System.DBNull.Value;}}", 2);
                    stringBuilder.AddLineStatement($"else");
                    stringBuilder.AddLineStatement($"{{{param_name}.Value ={BaseConstants.ParamPer}Item.{spfld};}};", 2);
                }
                stringBuilder.AddLineStatement($"{param_name}.Direction = ParameterDirection.Input;", 2);
            }
            else
            {
                stringBuilder.AddLineStatement($"{param_name}.Direction = ParameterDirection.Output;", 2);
            }
            MetaDataType metaDataType = MetaDataTypeHandle.GetMetaDataType(azMetaCloum.FldType);

            if (metaDataType.CodeSign == 2)
            {
                if (azMetaCloum.FldLen < 1)
                {
                    stringBuilder.AddLineStatement($"{param_name}.Size = int.MaxValue - 1;", 2);
                }
                else
                {
                    stringBuilder.AddLineStatement($"{param_name}.Size = {azMetaCloum.FldLen};", 2);
                }
            }
            stringBuilder.AddLineStatement($"{param_name}.SqlDbType = SqlDbType.{metaDataType.DBCodeType};", 2);
            stringBuilder.AddLineStatement($"cmd.Parameters.Add({param_name});", 2);
            stringBuilder.AppendLine();
            return(stringBuilder.ToString());
        }