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; }
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; }
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; }
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); }
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; }
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(); }
///// <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); } }