获取数据表的模式信息
// 获取数据表的模式信息
// SchemaTable.cs
using System;
using System.Data;
using System.Data.SqlClient;
namespace Ch12
{
class SchemaTable
{
static void Main( string[] args)
{
string strConn = "server=.\\MSSQL2012;integrated security=true;database=Northwind;";
string sql = "select * from employees";
SqlConnection conn = new SqlConnection(strConn);
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader rdr = cmd.ExecuteReader();
// 保存数据表 employees 的模式信息
DataTable schema = rdr.GetSchemaTable();
foreach (DataRow row in schema.Rows)
{
foreach (DataColumn col in schema.Columns)
Console.WriteLine(col.ColumnName + "= " + row[col]);
Console.WriteLine( "**".PadRight(50,'*' ));
}
rdr.Close();
}
catch ( Exception ex)
{
Console.WriteLine( "发生错误:" + ex);
}
finally
{
conn.Close();
Console.ReadLine();
}
}
}
}
---------------------------
ColumnName= Region
ColumnOrdinal= 9
ColumnSize= 15
NumericPrecision= 255
NumericScale= 255
IsUnique= False
IsKey=
BaseServerName=
BaseCatalogName=
BaseColumnName= Region
BaseSchemaName=
BaseTableName=
DataType= System.String
AllowDBNull= True
ProviderType= 12
IsAliased=
IsExpression=
IsIdentity= False
IsAutoIncrement= False
IsRowVersion= False
IsHidden=
IsLong= False
IsReadOnly= False
ProviderSpecificDataType= System.Data.SqlTypes.SqlString
DataTypeName= nvarchar
XmlSchemaCollectionDatabase=
XmlSchemaCollectionOwningSchema=
XmlSchemaCollectionName=
UdtAssemblyQualifiedName=
NonVersionedProviderType= 12
IsColumnSet= False
**************************************************
ColumnName= PostalCode
ColumnOrdinal= 10
ColumnSize= 10
NumericPrecision= 255
NumericScale= 255
IsUnique= False
IsKey=
BaseServerName=
BaseCatalogName=
BaseColumnName= PostalCode
BaseSchemaName=
BaseTableName=
DataType= System.String
AllowDBNull= True
ProviderType= 12
IsAliased=
IsExpression=
IsIdentity= False
IsAutoIncrement= False
IsRowVersion= False
IsHidden=
IsLong= False
IsReadOnly= False
ProviderSpecificDataType= System.Data.SqlTypes.SqlString
DataTypeName= nvarchar
XmlSchemaCollectionDatabase=
XmlSchemaCollectionOwningSchema=
XmlSchemaCollectionName=
UdtAssemblyQualifiedName=
NonVersionedProviderType= 12
IsColumnSet= False
**************************************************
......