private void DataGrid1_LoadingRow(object sender, DataGridRowEventArgs e) { DataGridRow row = e.Row; DataFeild model = e.Row.Item as DataFeild; if (!string.IsNullOrEmpty(txtFieldName.Text.Trim().ToUpper())) { if (model.DataFeildName.ToUpper().IndexOf(txtFieldName.Text.Trim().ToUpper()) >= 0 || model.ChineseName.ToUpper().IndexOf(txtFieldName.Text.Trim().ToUpper()) >= 0 ) { row.Background = Brushes.Maroon; row.Foreground = Brushes.White; } else { row.Background = Brushes.White; row.Foreground = Brushes.Black; } } }
public List <DataFeild> GetList(string id) { string sql = string.Format(@" declare @dbname sysname ,@no varchar(35), @yes varchar(35), @none varchar(35) select @no = 'no', @yes = 'yes', @none = 'none' declare @precscaletypes nvarchar(150) select @precscaletypes = N'tinyint,smallint,decimal,int,bigint,real,money,float,numeric,smallmoney,date,time,datetime2,datetimeoffset,' select a.*,b.value ChineseName, case c.type when 'U' then '1' when 'V' then '2' end as DataViewType from ( select 'DataFeildName' = name, 'DataFeildDataType' = type_name(user_type_id), 'Computed' = case when ColumnProperty(object_id, name, 'IsComputed') = 0 then @no else @yes end, 'DataFeildLength' = convert(int, max_length), -- for prec/scale, only show for those types that have valid precision/scale -- Search for type name + ',', because 'datetime' is actually a substring of 'datetime2' and 'datetimeoffset' 'Prec' = case when charindex(type_name(system_type_id) + ',', @precscaletypes) > 0 then convert(char(5),ColumnProperty(object_id, name, 'precision')) else ' ' end, 'Scale' = case when charindex(type_name(system_type_id) + ',', @precscaletypes) > 0 then convert(char(5),OdbcScale(system_type_id,scale)) else ' ' end, 'Nullable' = case when is_nullable = 0 then @no else @yes end, 'TrimTrailingBlanks' = case ColumnProperty(object_id, name, 'UsesAnsiTrim') when 1 then @no when 0 then @yes else '(n/a)' end, 'FixedLenNullInSource' = case when type_name(system_type_id) not in ('varbinary','varchar','binary','char') then '(n/a)' when is_nullable = 0 then @no else @yes end, 'Collation' = collation_name, 'DataFeildID'=column_id, is_identity, object_id from sys.all_columns where object_id = '{0}' )a left join ( select * from sys.extended_properties b where b.major_id='{0}')b on b.minor_id=a.DataFeildID left join SysObjects c on c.id=a.object_id " , id); List <DataFeild> list = new List <DataFeild>(); SqlHelper helper = new SqlHelper(); DataSet set = helper.ExeQueryGetDataSet(sql); DataTable dt = set.Tables[0]; foreach (DataRow row in dt.Rows) { DataFeild obj = new DataFeild { ChineseName = row["ChineseName"].ToString(), DataFeildDataType = row["DataFeildDataType"].ToString(), DataFeildID = row["DataFeildID"].ToString(), DataFeildLength = Convert.ToInt32(row["DataFeildLength"]), DataFeildName = row["DataFeildName"].ToString(), DataViewType = row["DataViewType"].ToString() }; list.Add(obj); } return(list); }