Beispiel #1
0
        public static string GetConvertStringFromRequest(ModuleField field)
        {
            string result = "";

            if (LanguageConvert.IsValueType(field.LanguageType))
            {
                result = string.Format("({1})Request.Form[\"{0}\"]", field.FieldName, field.LanguageType);
            }
            else
            {
                result = string.Format("Request.Form[\"{0}\"] as {1}", field.FieldName, field.LanguageType);
            }

            return result;
        }
Beispiel #2
0
        public Module(ITableInfo tbInfo)
        {
            this.CodeName = tbInfo.PascalName;

            var fields = new List<ModuleField>();
            foreach (var col in tbInfo.Columns)
            {
                ModuleField field = new ModuleField(this, col.Description, col.RawName, col.PascalName);
                field.LanguageType = col.LanguageType;
                field.Nullable = col.Nullable;
                if(col.MaxLength.HasValue && col.MaxLength > 0)
                {
                    field.StringLength = col.MaxLength.Value;
                }
                fields.Add(field);
            }
            this.Fields = fields;
        }
Beispiel #3
0
        public static string GetNullCheckString(ModuleField field, string varname)
        {
            string result = "";

            if (field.LanguageType == "string")
            {
                result = string.Format("string.IsNullOrEmpty({0})", varname);
            }
            else
            {
                if (LanguageConvert.IsValueType(field.LanguageType))
                {
                    //result = string.Format("({1})Request.Form[\"{0}\"]", field.FieldName, field.LanguageType);
                }
                else
                {
                    result = string.Format("{1} == null", varname);
                }
            }

            return result;
        }
Beispiel #4
0
        private void ResultSettingPage_Commit(object sender, AeroWizard.WizardPageConfirmEventArgs e)
        {
            if (ResultList == null || ResultList.Count == 0)
                return;

            DbQueryCodeGen gen = new DbQueryCodeGen();
            string code = string.Empty;
            string connstr = App.Instance.DBLink.ConnectionString;
            if (ResultList.Count == 1)
            {
                var ctrl = ResultList[0];
                Module module = new Module();
                module.ModuleName = ctrl.RowClassName;
                module.CodeName = ctrl.RowClassName;
                if (ctrl.DataTable != null)
                {
                    foreach (DataColumn dc in ctrl.DataTable.Columns)
                    {
                        ModuleField mf = new ModuleField(module, "", dc.ColumnName, dc.ColumnName);
                        mf.DataType = dc.DataType;
                        mf.Nullable = dc.AllowDBNull;
                        mf.LanguageType = LanguageConvert.GetCSharpType(dc.DataType, dc.AllowDBNull);
                        //Debug.WriteLine("{0} ---> {1}", mf.FieldName, mf.LanguageType);
                        module.Fields.Add(mf);
                    }
                }
                if (ctrl.QueryExecuteType == SQLQueryExecuteType.ReadRows)
                {
                    code = gen.GenForQueryList(this.SQL, module, connstr);
                }
                else if (ctrl.QueryExecuteType == SQLQueryExecuteType.ReadOneRow)
                {
                    code = gen.GenForQueryOne(this.SQL, module, connstr);
                }
                else if (ctrl.QueryExecuteType == SQLQueryExecuteType.ExecuteSclor)
                {
                    if (ctrl.DataTable != null && ctrl.DataTable.Columns != null && ctrl.DataTable.Columns.Count > 0)
                    {
                        var dc = ctrl.DataTable.Columns[0];
                        Type t = dc.DataType;
                        bool allowDBNull = dc.AllowDBNull;
                        code = gen.GenForExecuteScalar(this.SQL, t, allowDBNull, connstr);
                    }
                }
                else
                {
                    code = gen.GenForExecuteNoQuery(this.SQL, connstr);
                }
            }
            else
            {
                List<Module> modules = new List<Module>();
                foreach (var ctrl in this.ResultList)
                {
                    Module module = new Module();
                    module.ModuleName = ctrl.RowClassName;
                    module.CodeName = ctrl.RowClassName;
                    if (ctrl.DataTable != null)
                    {
                        foreach (DataColumn dc in ctrl.DataTable.Columns)
                        {
                            ModuleField mf = new ModuleField(module, "", dc.ColumnName, dc.ColumnName);
                            mf.DataType = dc.DataType;
                            mf.Nullable = dc.AllowDBNull;
                            mf.LanguageType = LanguageConvert.GetCSharpType(dc.DataType, dc.AllowDBNull);
                            //Debug.WriteLine("{0} ---> {1}", mf.FieldName, mf.LanguageType);
                            module.Fields.Add(mf);
                        }
                    }
                    modules.Add(module);
                }
                code = gen.GenForMultiQuery(this.SQL, modules, connstr);
            }

            CodeView codeView = new CodeView();
            codeView.Dock = DockStyle.Fill;
            ResultPage.Controls.Add(codeView);
            codeView.Show(code);
        }
Beispiel #5
0
        public static string BuildSetFieldValue(ModuleField column)
        {
            string result = "";

            if (LanguageConvert.IsValueType(column.LanguageType))
            {
                result = string.Format("({1})sdr[\"{0}\"]", column.FieldName, column.LanguageType);
            }
            else
            {
                result = string.Format("sdr[\"{0}\"] as {1}", column.FieldName, column.LanguageType);
            }

            return result;
        }
Beispiel #6
0
        public static string BuildGetSqlReaderNullStr(ModuleField column)
        {
            //string sqlType = column.DBType;
            //string sqlDbType = column.DbTargetType;
            string languageType = column.LanguageType;
            StringBuilder sb = new StringBuilder();

            bool nullable = languageType.Contains("?") || languageType.Contains("Nullable<");

            //如果该列是可空,并且是值类型
            if (nullable && LanguageConvert.IsValueType(languageType))
            {
                sb.Append("null");
            }
            else
            {
                sb.AppendFormat("default({0})", languageType);
            }

            return sb.ToString();
        }
Beispiel #7
0
        ///// <summary>
        ///// 方法1
        ///// entity.ID = (int)sdr["ID"];
        ///// entity.C_money = Convert.IsDBNull(sdr["C_money"]) ? default(decimal?) : sdr["C_money"] as decimal?;
        ///// </summary>
        //public static string GetPropertySettingString(string entityName, string readerName, ModuleField field)
        //{
        //    if (field == null)
        //    {
        //        return "";
        //    }

        //    if (field.Nullable || field.LanguageType.Contains("?") || field.LanguageType.Contains("Nullable<"))
        //    {
        //        return string.Format("{3}.{0} = Convert.IsDBNull({4}[\"{1}\"]) ? default({2}) : {4}[\"{1}\"] as {2};"
        //            , field.CodeName, field.FieldName, field.LanguageType, entityName, readerName);
        //    }
        //    else
        //    {
        //        return string.Format("{3}.{0} = ({2}){4}[\"{1}\"];"
        //            , field.CodeName, field.FieldName, field.LanguageType, entityName, readerName);
        //    }
        //}

        /// <summary>
        /// 方法2
        /// entity.ID = (int)sdr["ID"];
        /// entity.C_money = Convert.IsDBNull(sdr["C_money"]) ? default(decimal?) : sdr["C_money"] as decimal?;
        /// </summary>
        public static string GetPropertySettingString2(string entityName, string readerName, ModuleField field)
        {
            if (field == null)
            {
                return "";
            }

            if (field.Nullable || field.DataType.IsClass || field.LanguageType.Contains("?") || field.LanguageType.Contains("Nullable<"))
            {
                return string.Format("{3}.{0} = {4}[\"{1}\"] as {2};"
                    , field.CodeName, field.FieldName, field.LanguageType, entityName, readerName);
            }
            else
            {
                return string.Format("{3}.{0} = ({2}){4}[\"{1}\"];"
                    , field.CodeName, field.FieldName, field.LanguageType, entityName, readerName);
            }
        }