Csharp/C#教程:将XML文件读取到现有的数据库表分享


将XML文件读取到现有的数据库表

我正在尝试将XML文件读入已存在的数据库表中。

问题是XML标记和数据库列没有相同的名称,尽管它们具有相同的数据类型。 因此,我希望将XML标记“转换”到数据库列中,以便可以输入数据库。 但是我不知道该怎么做。

这是我到目前为止所做的。

static void writeToDatabase() { XmlDocument doc= new XmlDocument(); try { //Reading the xml doc.Load("C:\Tempnavetout.xml"); DataTable dt = new DataTable(); //Code here to read the xml into an already existing database table? } catch (Exception e) { Console.WriteLine(e.Message); } } 

数据库位于另一台服务器上,我已将其包含在app.config

     

让我们说一个例子,XML文件的标签是“ Name ”,而数据库表的列则是“ Firstname ”。

在将XML数据读入数据库表之前,我认为必须将XML标记转换为Database表列。 在这种情况下“ 免费精选名字大全 ”。

任何人都可以帮我解决这个“翻译”和阅读数据库表。

UPDATE

XML示例:

       7527245452542    20 skjdgnsdng  sdsdgsdgs    20060512 56 77  PÅLNGE 6:38 0      sgdsdgsdgs 78965 PÅLÄNG   46464545 764846846 45465654645     00 NEDERKALIX    SE 0    

更新2:

这些是数据库表的列:

 PersonalIdentityNumber ProtectedIdentity ReferedCivicRegistrationNumber UnregistrationReason UnregistrationDate MessageComputerComputer GivenNameNumber FirstName MiddleName LastName NotifyName NationalRegistrationDate NationalRegistrationCountyCode NationalRegistrationMunicipalityCode NationalRegistrationCoAddress NationalRegistrationDistributionAddress1 NationalRegistrationDistributionAddress2 NationalRegistrationPostCode NationalRegistrationCity NationalRegistrationNotifyDistributionAddress NationalRegistrationNotifyPostCode NationalRegistrationNotifyCity ForeignDistrubtionAddress1 ForeignDistrubtionAddress2 ForeignDistrubtionAddress3 ForeignDistrubtionCountry ForeignDate BirthCountyCode BirthParish ForeignBirthCity CitizenshipCode CitizenshipDate Email Telephone Mobiletelephone Gender NotNewsPaper Note StatusCode NationalRegistrationCode RegistrationDate LastUpdatedFromNavet TemporaryDistrubtionAddress1 TemporaryDistrubtionAddress2 TemporaryDistrubtionAddress3 TemporaryDistrubtionCountry Password VisibilityLevel LastChangedBy LastChangedDate SeamanIdentity Category 

这里举一个例子, tagg和数据库列PersonalIdentityNumber是相同的。 与XML标记不匹配的列应该返回null

我不知道,哪些值映射到哪一列,我只给你一个例子来说明如何做到这一点。 但是在这个模板之后添加其余部分应该很容易。

使用这样的代码可以将值插入表中。

 INSERT INTO YourTable(PersonalIdentityNumber, ... , FirstName,MiddleName,LastName, ...) SELECT Person.value('(PersonId/PersonNr)[1]','varchar(max)') AS PersonalIdentityNumber ,... ,Person.value('(Namn/Fornamn)[1]','varchar(max)') AS FirstName ,Person.value('(Namn/Mellannamn)[1]','varchar(max)') AS MiddleName ,Person.value('(Namn/Efternamn)[1]','varchar(max)') AS LastName ,... FROM @xml.nodes('/ArrayOfFolkbokforingspostTYPE/FolkbokforingspostTYPE/Personpost') AS The(Person) 

实际上,没有必要像我在这里所做的那样命名SELECT列。 使用INSERT INTO可以定义列列表,下面的SELECT必须以正确的计数和顺序返回这些列。

你必须意识到,XPath对你的拼写非常严格并且区分大小写没有错误,如果你做错了就只有一个NULL。

如果您对XML查询没有经验:只需在INSERT INTO前放一个--并显示SELECT的结果。 当一切正常时,删除--并将数据插入表中。

要从应用程序中轻松调用,可以将其放入Stored Procedure并将XML作为参数传递。

上述就是C#学习教程:将XML文件读取到现有的数据库表分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1004676.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐