将多个DataTable架构从数据库加载到DataSet的最佳实践

时间:2014-04-30 13:34:22

标签: c# .net dataset dataadapter

我正在处理一个处理具有非常动态架构的数据库的应用程序。我想将我的数据库表模式添加到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>数据库表名的方法。这在我的情况下完美地工作,但我不确定它是否是最好的方法呢?还有其他选择吗?

1 个答案:

答案 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