private void SetFieldList() { StringBuilder builder = new StringBuilder(); builder.Append("SELECT"); builder.Append(" FieldName=C.name,"); builder.Append(" FieldDescn=ISNULL(PFD.[value],C.name),"); builder.Append(" FieldType=T.name,"); builder.Append(" FieldLen=C.max_length,"); builder.Append(" DefaultValue=D.definition"); builder.Append(" FROM sys.columns C"); builder.Append(" INNER JOIN sys.objects O"); builder.Append(" ON C.[object_id]=O.[object_id]"); builder.Append(" AND O.type='U'"); builder.Append(" AND O.is_ms_shipped=0"); builder.Append(" INNER JOIN sys.types T"); builder.Append(" ON C.user_type_id=T.user_type_id"); builder.Append(" LEFT JOIN sys.default_constraints D"); builder.Append(" ON C.[object_id]=D.parent_object_id"); builder.Append(" AND C.column_id=D.parent_column_id"); builder.Append(" AND C.default_object_id=D.[object_id]"); builder.Append(" LEFT JOIN sys.extended_properties PFD"); builder.Append(" ON PFD.class=1 "); builder.Append(" AND C.[object_id]=PFD.major_id"); builder.Append(" AND C.column_id=PFD.minor_id"); builder.Append(" LEFT JOIN sys.extended_properties PTB"); builder.Append(" ON PTB.class=1"); builder.Append(" AND PTB.minor_id=0 "); builder.Append(" AND C.[object_id]=PTB.major_id"); builder.Append(" LEFT JOIN "); builder.Append(" ("); builder.Append(" SELECT "); builder.Append(" IDXC.[object_id],"); builder.Append(" IDXC.column_id,"); builder.Append( " Sort=CASE INDEXKEY_PROPERTY(IDXC.[object_id],IDXC.index_id,IDXC.index_column_id,'IsDescending')"); builder.Append(" WHEN 1 THEN 'DESC' WHEN 0 THEN 'ASC' ELSE '' END,"); builder.Append(" PrimaryKey=CASE WHEN IDX.is_primary_key=1 THEN N'1'ELSE N'0' END,"); builder.Append(" IndexName=IDX.Name"); builder.Append(" FROM sys.indexes IDX"); builder.Append(" INNER JOIN sys.index_columns IDXC"); builder.Append(" ON IDX.[object_id]=IDXC.[object_id]"); builder.Append(" AND IDX.index_id=IDXC.index_id"); builder.Append(" LEFT JOIN sys.key_constraints KC"); builder.Append(" ON IDX.[object_id]=KC.[parent_object_id]"); builder.Append(" AND IDX.index_id=KC.unique_index_id"); builder.Append(" INNER JOIN"); builder.Append(" ("); builder.Append(" SELECT [object_id], Column_id, index_id=MIN(index_id)"); builder.Append(" FROM sys.index_columns"); builder.Append(" GROUP BY [object_id], Column_id"); builder.Append(" ) IDXCUQ"); builder.Append(" ON IDXC.[object_id]=IDXCUQ.[object_id]"); builder.Append(" AND IDXC.Column_id=IDXCUQ.Column_id"); builder.Append(" AND IDXC.index_id=IDXCUQ.index_id"); builder.Append(" ) IDX"); builder.Append(" ON C.[object_id]=IDX.[object_id]"); builder.Append(" AND C.column_id=IDX.column_id "); builder.Append(" WHERE O.name='" + this.TableName + "' "); builder.Append(" ORDER BY O.name,C.column_id"); DataTable table = null; try { table = MyControl_SqlHelper.ExecuteDataset(this.DevConnStr, CommandType.Text, builder.ToString(), new SqlParameter[0]) .Tables[0]; if ((table != null) && (table.Rows.Count > 0)) { foreach (DataRow row in table.Rows) { EditFieldParam item = new EditFieldParam(); item.FieldName = row[0].ToString(); item.FieldDescN = row[1].ToString().Trim(); item.FieldType = this.GetFieldType(row[2].ToString().ToLower()); item.FieldLen = MyControl_FilterHelper.GetIntZero(row[3]); this.fieldList.Add(item); } } } catch { } }