Mega Code Archive

 
Categories / C# Tutorial / ADO Net
 

Get table schema from SqlDataReader

using System; using System.Data; using System.Data.SqlClient; class MainClass {    static void Main(string[] args)    {       string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;";       string sql = @"select * from employee ";       SqlConnection conn = new SqlConnection(connString);       try       {          conn.Open();          SqlCommand cmd = new SqlCommand(sql, conn);          SqlDataReader rdr = cmd.ExecuteReader();          DataTable schema = rdr.GetSchemaTable();          foreach (DataRow row in schema.Rows)           {             foreach (DataColumn col in schema.Columns)                Console.WriteLine(col.ColumnName + " = " + row[col]);          }          rdr.Close();       }       catch(Exception e)       {          Console.WriteLine("Error Occurred: " + e);       }       finally       {          conn.Close();       }    } } ColumnName = ID ColumnOrdinal = 0 ColumnSize = 4 NumericPrecision = 10 NumericScale = 255 IsUnique = False IsKey = BaseServerName = BaseCatalogName = BaseColumnName = ID BaseSchemaName = BaseTableName = DataType = System.Int32 AllowDBNull = True ProviderType = 8 IsAliased = IsExpression = IsIdentity = False IsAutoIncrement = False IsRowVersion = False IsHidden = IsLong = False IsReadOnly = False ProviderSpecificDataType = System.Data.SqlTypes.SqlInt32 DataTypeName = int XmlSchemaCollectionDatabase = XmlSchemaCollectionOwningSchema = XmlSchemaCollectionName = UdtAssemblyQualifiedName = NonVersionedProviderType = 8 ColumnName = FirstName ColumnOrdinal = 1 ColumnSize = 10 NumericPrecision = 255 NumericScale = 255 IsUnique = False IsKey = BaseServerName = BaseCatalogName = BaseColumnName = FirstName BaseSchemaName = BaseTableName = DataType = System.String AllowDBNull = True ProviderType = 10 IsAliased = IsExpression = IsIdentity = False IsAutoIncrement = False IsRowVersion = False IsHidden = IsLong = False IsReadOnly = False ProviderSpecificDataType = System.Data.SqlTypes.SqlString DataTypeName = nchar XmlSchemaCollectionDatabase = XmlSchemaCollectionOwningSchema = XmlSchemaCollectionName = UdtAssemblyQualifiedName = NonVersionedProviderType = 10 ColumnName = LastName ColumnOrdinal = 2 ColumnSize = 10 NumericPrecision = 255 NumericScale = 255 IsUnique = False IsKey = BaseServerName = BaseCatalogName = BaseColumnName = LastName BaseSchemaName = BaseTableName = DataType = System.String AllowDBNull = True ProviderType = 10 IsAliased = IsExpression = IsIdentity = False IsAutoIncrement = False IsRowVersion = False IsHidden = IsLong = False IsReadOnly = False ProviderSpecificDataType = System.Data.SqlTypes.SqlString DataTypeName = nchar XmlSchemaCollectionDatabase = XmlSchemaCollectionOwningSchema = XmlSchemaCollectionName = UdtAssemblyQualifiedName = NonVersionedProviderType = 10 ColumnName = Salary ColumnOrdinal = 3 ColumnSize = 8 NumericPrecision = 15 NumericScale = 255 IsUnique = False IsKey = BaseServerName = BaseCatalogName = BaseColumnName = Salary BaseSchemaName = BaseTableName = DataType = System.Double AllowDBNull = True ProviderType = 6 IsAliased = IsExpression = IsIdentity = False IsAutoIncrement = False IsRowVersion = False IsHidden = IsLong = False IsReadOnly = False ProviderSpecificDataType = System.Data.SqlTypes.SqlDouble DataTypeName = float XmlSchemaCollectionDatabase = XmlSchemaCollectionOwningSchema = XmlSchemaCollectionName = UdtAssemblyQualifiedName = NonVersionedProviderType = 6 ColumnName = Birthday ColumnOrdinal = 4 ColumnSize = 8 NumericPrecision = 23 NumericScale = 3 IsUnique = False IsKey = BaseServerName = BaseCatalogName = BaseColumnName = Birthday BaseSchemaName = BaseTableName = DataType = System.DateTime AllowDBNull = True ProviderType = 4 IsAliased = IsExpression = IsIdentity = False IsAutoIncrement = False IsRowVersion = False IsHidden = IsLong = False IsReadOnly = False ProviderSpecificDataType = System.Data.SqlTypes.SqlDateTime DataTypeName = datetime XmlSchemaCollectionDatabase = XmlSchemaCollectionOwningSchema = XmlSchemaCollectionName = UdtAssemblyQualifiedName = NonVersionedProviderType = 4