【发布时间】:2015-08-14 20:25:28
【问题描述】:
我在DataSet 中读取了xsd 和xml 文件,现在我想从DataSet 中创建数据库
foreach (DataTable dt in temp.Tables) {
foreach (DataColumn dc in dt.Columns) {
//example for one column
SqlCommand createtable = new SqlCommand(
"create table " + dt.TableName + " ("
+ dc.ColumnName + " varchar(max))", conn);
createtable.ExecuteNonQuery();
}
}
但是我有一些问题,当我创建 db 表时,我需要 XSD 中的列类型和大小(例如使用 varchar(max))。如何解决这个问题?
例如在 xsd 我有
<xs:restriction base="xs:string">
<xs:maxLength value="36"/>
<xs:minLength value="1"/>
</xs:restriction>
或
<xs:restriction base="xs:string">
<xs:maxLength value="40"/>
</xs:restriction>
或
<xs:restriction base="xs:decimal">
<xs:totalDigits value="19"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
最后我需要脚本来创建具有列大小的数据库表(如在 xsd 中)
UPD:也许使用XmlSchemaSet 来解析 XSD?
【问题讨论】:
-
遍历 DataTable 的 Columns 属性的 DataColumn(s) 并创建适当的列定义。
-
我不明白你的意思
-
检查this MSDN article ;)。
-
您应该将 XML 直接导入 SQL Server 以创建新数据库。无需使用 C# 应用程序。试试这个:stackoverflow.com/questions/2628327/…
-
您可以从数据集列中获取数据类型、最大长度以及可能更多信息...
标签: c# sql sql-server xml dataset