2010-09-10 101 views
2

我想获取表的所有列的默认值,以便我可以在数据输入表单中显示它们,有没有一种方法可以使用ADO.NET来执行此操作?我知道我可以查询information_schema数据库的这个信息,我只是想知道是否有一个内置的方式来做到这一点在ADO.NET使用ADO.NET获取列默认值

+0

你可以得到几乎一切你想知道的有关使用FillSchema的表结构,但我没有看到的默认值可用项目之间 - http://msdn.microsoft.com/en-us/library/229sz0y5.aspx – DOK 2010-09-10 19:42:01

回答

2

您可以使用DbConnection.GetSchema获取默认的列值:

DbConnection conn = SqlClientFactory.Instance.CreateConnection("server=.\\SQLEXPRESS;database=northwind;integrated security=true"); 
conn.Open(); 

DataTable schema; 

try { 

    schema = conn.GetSchema("Columns", new string[4] { conn.Database, null, "products", null }); 

    foreach (DataRow row in schema.Rows) { 
     Console.WriteLine("Name: {0}, Default: {1}", row["COLUMN_NAME"], row["COLUMN_DEFAULT"]); 
    } 

} finally { 
    if (conn.State != ConnectionState.Closed) 
     conn.Close(); 
} 
1

不,你将不得不查询数据库模式,或硬代码你自己的价值。