2010-09-10 68 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

不,你將不得不查詢數據庫模式,或硬代碼你自己的價值。