/// <summary> /// 列信息装换 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static List<ColumnInfo> GetColumnInfos(DataTable dt) { List<ColumnInfo> list = new List<ColumnInfo>(); if (dt == null) { return null; } foreach (DataRow row in dt.Rows) { string str = row["Colorder"].ToString(); //序号 string str2 = row["ColumnName"].ToString(); //列名 string str3 = row["TypeName"].ToString(); //类型 string str4 = row["IsIdentity"].ToString(); //标识 string str5 = row["IsPK"].ToString(); //主键 string str6 = row["Length"].ToString(); //长度 string str7 = row["Preci"].ToString(); //精度 string str8 = row["Scale"].ToString(); //小数位 string str9 = row["cisNull"].ToString(); //为空 string str10 = row["DefaultVal"].ToString(); //默认值 string str11 = row["DeText"].ToString(); //描述 ColumnInfo item = new ColumnInfo(); item.Colorder = str; item.ColumnName = str2; item.TypeName = str3; item.IsIdentity = str4 == "√"; item.IsPK = str5 == "√"; item.Length = str6; item.Preci = str7; item.Scale = str8; item.cisNull = (str9 == "√") || (string.Compare(str9, "Y", true) == 0); item.DefaultVal = str10; item.DeText = str11; item.ColumnNameRealName = item.ColumnName; list.Add(item); } return list; }
private string BuilderMethod() { StringPlus plus = new StringPlus(); plus.AppendSpaceLine(2, "#region Method"); //只读 if (IsView) { plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 是否只读"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override bool IsReadOnly()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return true;"); plus.AppendSpaceLine(2, "}"); } Model.ColumnInfo identityColumn = Columns.Find(delegate(Model.ColumnInfo col) { return(col.IsIdentity); }); if (null != identityColumn) { plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 获取实体中的标识列"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override Field GetIdentityField()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return _." + identityColumn.ColumnName + ";"); plus.AppendSpaceLine(2, "}"); } List <Model.ColumnInfo> primarykeyColumns = Columns.FindAll(delegate(Model.ColumnInfo col) { return(col.IsPK); }); if (null != primarykeyColumns && primarykeyColumns.Count > 0) { plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 获取实体中的主键列"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override Field[] GetPrimaryKeyFields()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return new Field[] {"); StringPlus plus2 = new StringPlus(); foreach (Model.ColumnInfo col in primarykeyColumns) { plus2.AppendSpaceLine(4, "_." + col.ColumnName + ","); } plus.Append(plus2.ToString().TrimEnd().Substring(0, plus2.ToString().TrimEnd().Length - 1)); plus.AppendLine("};"); plus.AppendSpaceLine(2, "}"); } plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 获取列信息"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override Field[] GetFields()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return new Field[] {"); StringPlus plus3 = new StringPlus(); foreach (ColumnInfo col in Columns) { plus3.AppendSpaceLine(4, "_." + col.ColumnName + ","); } plus.Append(plus3.ToString().TrimEnd().Substring(0, plus3.ToString().TrimEnd().Length - 1)); plus.AppendLine("};"); plus.AppendSpaceLine(2, "}"); plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 获取值信息"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override object[] GetValues()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return new object[] {"); StringPlus plus4 = new StringPlus(); foreach (ColumnInfo col in Columns) { plus4.AppendSpaceLine(4, "this._" + col.ColumnName + ","); } plus.Append(plus4.ToString().TrimEnd().Substring(0, plus4.ToString().TrimEnd().Length - 1)); plus.AppendLine("};"); plus.AppendSpaceLine(2, "}"); //2015-08-10注释 //plus.AppendSpaceLine(2, "/// <summary>"); //plus.AppendSpaceLine(2, "/// 给当前实体赋值"); //plus.AppendSpaceLine(2, "/// </summary>"); //plus.AppendSpaceLine(2, "public override void SetPropertyValues(IDataReader reader)"); //plus.AppendSpaceLine(2, "{"); //foreach (ColumnInfo col in Columns) //{ // plus.AppendSpaceLine(3, "this._" + col.ColumnName + " = DataUtils.ConvertValue<" + col.TypeName + ">(reader[\"" + col.ColumnNameRealName + "\"]);"); //} //plus.AppendSpaceLine(2, "}"); //2015-08-10注释 //plus.AppendSpaceLine(2, "/// <summary>"); //plus.AppendSpaceLine(2, "/// 给当前实体赋值"); //plus.AppendSpaceLine(2, "/// </summary>"); //plus.AppendSpaceLine(2, "public override void SetPropertyValues(DataRow row)"); //plus.AppendSpaceLine(2, "{"); //foreach (ColumnInfo col in Columns) //{ // plus.AppendSpaceLine(3, "this._" + col.ColumnName + " = DataUtils.ConvertValue<" + col.TypeName + ">(row[\"" + col.ColumnNameRealName + "\"]);"); //} //plus.AppendSpaceLine(2, "}"); plus.AppendSpaceLine(2, "#endregion"); plus.AppendLine(); plus.AppendSpaceLine(2, "#region _Field"); plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 字段信息"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public class _"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "/// <summary>"); plus.AppendSpaceLine(3, "/// * "); plus.AppendSpaceLine(3, "/// </summary>"); plus.AppendSpaceLine(3, "public readonly static Field All = new Field(\"*\",\"" + TableName + "\");"); foreach (ColumnInfo col in Columns) { plus.AppendSpaceLine(3, "/// <summary>"); plus.AppendSpaceLine(3, "/// " + col.DeText); plus.AppendSpaceLine(3, "/// </summary>"); plus.AppendSpaceLine(3, "public readonly static Field " + col.ColumnName + " = new Field(\"" + col.ColumnNameRealName + "\",\"" + TableName + "\",\"" + (string.IsNullOrEmpty(col.DeText) ? col.ColumnNameRealName : col.DeText) + "\");"); } plus.AppendSpaceLine(2, "}"); plus.AppendSpaceLine(2, "#endregion"); plus.AppendLine(); return(plus.ToString()); }