我是C#的新手并且一直致力于学习数据库。目前我正在尝试从XML文档导入数据,该文档的项目存储如下:
<CityData>
<City>Ada</City>
<County>Olmsted</County>
<AreaCode>507</AreaCode>
<Founded>1900</Founded>
<CityWebSite>www.adacity.com</CityWebSite>
<Population>1200</Population>
<Zipcode>56996</Zipcode>
<ZipcodeMax>57656</ZipcodeMax>
</CityData>
我正在尝试将每个数据集合保存到SQL Express数据库中的不同行。我已经能够在数据库中存储其他信息,我只是不知道如何使用XML文档。数据库与我正在编写的C#程序一起本地存储在我的机器上。我有一个新表,其列的名称和排序方式与XML文档模式类似。我在网上找到的教程是针对.asp程序的。有没有人这样做过?这是一个C#Forms程序。
答案 0 :(得分:2)
这将完成你的工作。请确保将 filePath \ fileName.xml 替换为xml的完整路径,并根据您的xml更改 / dataroot / CityData (位于底部)。 sql也应该能够访问该文件。
Declare @xml XML
Select @xml =
CONVERT(XML,bulkcolumn,2) FROM OPENROWSET(BULK 'filePath\fileName.xml',SINGLE_BLOB) AS X
SET ARITHABORT ON
Insert into [YourTableName]
(
City,County,AreaCode,Founded,CityWebSite,[Population],Zipcode,ZipcodeMax
)
Select
P.value('City[1]','VARCHAR(100)') AS City,
P.value('County[1]','VARCHAR(100)') AS County,
P.value('AreaCode[1]','VARCHAR(100)') AS AreaCode,
P.value('Founded[1]','VARCHAR(100)') AS Founded,
P.value('CityWebSite[1]','VARCHAR(100)') AS CityWebSite,
P.value('Population[1]','VARCHAR(100)') AS Population,
P.value('Zipcode[1]','VARCHAR(100)') AS Zipcode,
P.value('ZipcodeMax[1]','VARCHAR(100)') AS ZipcodeMax,
From @xml.nodes('/dataroot/CityData') PropertyFeed(P)
答案 1 :(得分:1)