>string strConn, strSQL; > strConn = @"Data Source=(local);Initial Catalog=SiriusSQL;" + > "Trusted_Connection=Yes;"; > SqlConnection cn = new SqlConnection(strConn); > cn.Open(); > strSQL = "SELECT * FROM dbo.items"; > SqlCommand cmd = new SqlCommand(strSQL, cn); > SqlDataReader rdr; > rdr = cmd.ExecuteReader(CommandBehavior.SchemaOnly); > DataTable tbl = rdr.GetSchemaTable(); > > foreach (DataRow r in tbl.Rows) > { > Console.WriteLine("------------------------------------------------------------------"); > foreach (DataColumn dc in tbl.Columns ) > { > Console.WriteLine("Property: {0, -30} Value: {1}", dc.ColumnName, r[dc].ToString()); > } > } > rdr.Close(); > cn.Close();>
>/// <summary> > /// Column schema - some properties > /// </summary> > public class ColumnSchema > { > public String ColumnName { get; set; } > public Type DataType { get; set; } > public SqlDbType DbType { get; set; } > public Int16 ColumnSize { get; set; } > public Int16 Precision { get; set; } > public Int16 Scale { get; set; } > }>
> using (SqlDataReader sqlDataReader = command.ExecuteReader(CommandBehavior.SchemaOnly)) > { > DataTable tbl = sqlDataReader.GetSchemaTable(); > foreach (DataRow r in tbl.Rows) > { > ColumnSchema colSchema = new ColumnSchema(); > String readerColumnName = r["ColumnName"].ToString(); > colSchema.ColumnName = readerColumnName; > colSchema.ColumnSize = r.Field<Int16>("ColumnSize"); > colSchema.DataType = (Type)(r["DataType"].ToString());>