使用ADO.NET获取列默认值

使用ADO.NET获取列默认值,.net,sql,ado.net,.net,Sql,Ado.net,我想获得表中所有列的默认值,以便在数据输入表单中显示它们,有没有办法使用ADO.NET实现这一点?我知道我可以在信息模式数据库中查询这些信息,我只是想知道在ADO.NET中是否有一种内置的方法可以做到这一点。不,您必须查询数据库模式,或者自己硬编码这些值。您可以使用DbConnection.GetSchema来获取默认列值: DbConnection conn = SqlClientFactory.Instance.CreateConnection("server=.\\SQLEXPRESS;d

我想获得表中所有列的默认值,以便在数据输入表单中显示它们,有没有办法使用ADO.NET实现这一点?我知道我可以在信息模式数据库中查询这些信息,我只是想知道在ADO.NET中是否有一种内置的方法可以做到这一点。不,您必须查询数据库模式,或者自己硬编码这些值。

您可以使用
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();
}

通过使用FillSchema,您几乎可以获得关于表模式的所有其他信息,但我看不到可用项中的默认值-