使用ADO.NET获取列默认值

时间:2010-09-10 19:30:52

标签: .net sql ado.net

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

不,您必须查询数据库架构,或者自己对值进行硬编码。