对DataSet的结构(而不是数据)应用数据库更改的最简单方法是什么?我需要像DataAdaptors这样的东西吗?是否可以以这种方式使用我通过Visual Studio向导配置的DataSet?如何访问这样的DataSet?
答案 0 :(得分:0)
抱歉,没有内置方法可以做到这一点。
DataAdapter
适应某个数据库提供程序的DataSet
和DML(数据操作语言)。 DataSet
与提供商的DDL(数据定义语言)之间没有对应关系。
有一次我不得不这样做,我自己解释了DataSet。我有一个程序从服务器接受了一堆“类似关系”的元数据,用它来构造DataSet
,然后解释DataSet
来创建DDL。然后执行DDL以创建数据库,从服务填充DataSet
,最后使用DataAdapter
将DataSet
写入数据库。
这并不难,只是有点耗时。我首先编写了初始数据库结构的脚本,然后创建了与结构匹配的DataSet
。然后我弄清楚DataSet
的哪些部分来自DDL的哪些部分。然后我学会了如何从DataSet
回到DDL。当DataSet
的输出与原始DDL(或多或少)匹配时,我认为自己完成了。
答案 1 :(得分:0)
您可以将DataSet.GetXmlSchema()与XLST结合使用以生成架构DDL。另一种方法是编写一个小程序来解析每个DataTable,它的DataColumns和DataRelations基于可用的元数据(DataColumn.DataType,ColumnName,MaxLength,AllowNull等)来构建DDL。
但是,这两种方法只对新模式有用,如果你想为模式更改生成DDL,那么说实话,你可以使用existing product来节省大量时间。