public static void GetFinalParameter() { foreach (string choose in Singleton <Condition> .Instance.ChoosenParameters) { OriginalParameter op = Singleton <Condition> .Instance.ALLParameters.Find(o => o.ColumnName == choose); FinalParameter fp = new FinalParameter(); fp.IsNullable = op.IsNullable; fp.ColumnName = op.ColumnName; fp.DALType = GetType(op.DataType); fp.DALLength = DealParameterLength(fp.DALType, op.MaxLength); fp.EntityType = GetEntityType(op.DataType, fp.IsNullable); fp.ProcLength = ProcLength(fp.DALType, op.MaxLength); fp.Description = op.Description; Singleton <Condition> .Instance.FinalParameters.Add(fp); } }
public List <string> GetParameters() { List <string> Return = new List <string>(); DBOperatorBase db = new DataBase(); IDBTypeElementFactory dbFactory = db.GetDBTypeElementFactory(); ConString = Singleton <ConnectionString> .Instance.ToString(); try { //IDataReader dataReader = db.ExecuteReader(ConString, CommandType.Text, "SELECT TABLE_CATALOG AS [Database], TABLE_SCHEMA AS Owner, TABLE_NAME AS TableName, COLUMN_NAME AS ColumnName, ORDINAL_POSITION AS OrdinalPosition, COLUMN_DEFAULT AS DefaultSetting, case IS_NULLABLE when 'NO' then 'False' else 'True' END as Is_Nullable,DATA_TYPE AS DataType, CHARACTER_MAXIMUM_LENGTH AS MaxLength, DATETIME_PRECISION AS DatePrecision,COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') as IsIdentity FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME = '" + Singleton<ConnectionString>.Instance.DataTable + "')", null); IDataReader dataReader = db.ExecuteReader(ConString, CommandType.Text, "SELECT 表名 = case when a.colorder=1 then d.name else '' end,表说明= case when a.colorder=1 then isnull(f.value,'') else '' end,字段序号= a.colorder,字段名= a.name,标识= case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,主键= case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√' else '' end, 类型= b.name,占用字节数 = a.length,长度= COLUMNPROPERTY(a.id,a.name,'PRECISION'),小数位数= isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),允许空= case when a.isnullable=1 then '√'else '' end,默认值= isnull(e.text,''),字段说明= isnull(g.[value],'') FROM syscolumns a left join systypes b on a.xusertype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' left join syscomments e on a.cdefault=e.id left join sys.extended_properties g on a.id=G.major_id and a.colid=g.minor_id left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0 where d.name='" + Singleton <ConnectionString> .Instance.DataTable + "' order by a.id,a.colorder", null); while (dataReader.Read()) { checkedListBox1.Items.Add(String.Format("{0}\t{1}\t{2}\t{3}\t{4}", dataReader["字段名"].ToString(), dataReader["类型"].ToString(), dataReader["长度"].ToString(), dataReader["允许空"].ToString(), dataReader["字段说明"].ToString())); OriginalParameter op = new OriginalParameter(); op.ColumnName = dataReader["字段名"].ToString(); op.DataType = dataReader["类型"].ToString(); if (dataReader["允许空"].ToString() == "√") { op.IsNullable = true; } else { op.IsNullable = false; } op.MaxLength = dataReader["长度"].ToString(); op.Description = dataReader["字段说明"].ToString(); Singleton <Condition> .Instance.ALLParameters.Add(op); //Singleton<Condition>.Instance.AllParameterNames.Add(string.Format("{0}\t{1}", dataReader["ColumnName"].ToString(), dataReader["DataType"].ToString())); } } catch { } finally { db.Conn.Close(); } return(Return); }