我正在处理一个处理具有非常动态架构的数据库的应用程序。我想将我的数据库表模式添加到DataSet中,以便我可以轻松地获取表格列,列类型和约束。我使用DataAdapter.FillSchema
方法就是这样做的:
foreach (string table in get_tables())
{
DbDataAdapter myDataAdapter= new SqlDataAdapter("Select * From "+table, myConnexionString);
myDataAdapter.FillSchema(myDataSet, SchemaType.Source, table);
}
其中get_tables
是一个返回List<string>
数据库表名的方法。这在我的情况下完美地工作,但我不确定它是否是最好的方法呢?还有其他选择吗?
答案 0 :(得分:0)
ADO.Net Connection对象有一个名为GetSchema
的方法,您可以使用该方法获取不同对象的数据库架构
string[] restrictions = new string[1];
restrictions[0] = "myTableName";
DataTable table = sqlconnection.GetSchema("Tables",restrictions);
您可以在此处查看MSDN中的详细信息: http://msdn.microsoft.com/en-us/library/ms254934%28v=vs.80%29.aspx