我试图将XML文件读入已存在的数据库表中。将XML文件读取到已存在的数据库表中
问题是虽然XML标签和数据库列具有相同的数据类型,但它们并不具有相同的名称。因此,我想将XML标签“翻译”到数据库列中,以便数据库的输入成为可能。 但我不知道该怎么做。
这是我到目前为止所做的。
static void writeToDatabase()
{
XmlDocument doc= new XmlDocument();
try {
//Reading the xml
doc.Load("C:\\Temp\navetout.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
<connectionStrings>
<add name="CS"
connectionString="Data Source=tsrv2062;Initial Catalog=BUMS;Integrated Security=True"/>
</connectionStrings>
比方说,一个例子是,XML文件具有在数据库中标记“名称”表列有列“名字”。
在将XML数据读入数据库表之前,我想XML标签必须被转换成数据库表列。在这种情况下,“名字”。
任何人都可以帮我解决这个“翻译”和读入数据库表。
UPDATE
XML示例:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfFolkbokforingspostTYPE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FolkbokforingspostTYPE>
<Sekretessmarkering xsi:nil="true" />
<Personpost>
<PersonId>
<PersonNr>7527245452542</PersonNr>
</PersonId>
<HanvisningsPersonNr xsi:nil="true" />
<Namn>
<Tilltalsnamnsmarkering>20</Tilltalsnamnsmarkering>
<Fornamn>skjdgnsdng</Fornamn>
<Mellannamn xsi:nil="true" />
<Efternamn>sdsdgsdgs</Efternamn>
<Aviseringsnamn xsi:nil="true" />
</Namn>
<Folkbokforing>
<Folkbokforingsdatum>20060512</Folkbokforingsdatum>
<LanKod>56</LanKod>
<KommunKod>77</KommunKod>
<ForsamlingKod xsi:nil="true" />
<Fastighetsbeteckning>PÅLNGE 6:38</Fastighetsbeteckning>
<FiktivtNr>0</FiktivtNr>
</Folkbokforing>
<Adresser>
<Folkbokforingsadress>
<CareOf xsi:nil="true" />
<Utdelningsadress1 xsi:nil="true" />
<Utdelningsadress2>sgdsdgsdgs</Utdelningsadress2>
<PostNr>78965</PostNr>
<Postort>PÅLÄNG</Postort>
</Folkbokforingsadress>
<Riksnycklar>
<FastighetsId>46464545</FastighetsId>
<AdressplatsId>764846846</AdressplatsId>
<LagenhetsId>45465654645</LagenhetsId>
</Riksnycklar>
</Adresser>
<Fodelse>
<HemortSverige>
<FodelselanKod>00</FodelselanKod>
<Fodelseforsamling>NEDERKALIX</Fodelseforsamling>
</HemortSverige>
</Fodelse>
<Medborgarskap>
<MedborgarskapslandKod>SE</MedborgarskapslandKod>
<Medborgarskapsdatum>0</Medborgarskapsdatum>
</Medborgarskap>
</Personpost>
</FolkbokforingspostTYPE>
更新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
这里例如,<PersonNr>
tagg和数据库列PersonalIdentityNumber
是相同的。 与XML标签不匹配的列应该返回null
。
你为什么设置'sql-server'标签?你只是想读一个现有的XML文件到你的C#应用程序?然后你写下你想将这个内容添加到现有的DataTable中,但是你正在创建一个新的DataTable实例......这是一个包含SQL Server的现有表吗?如果是这样的话:在SQL Server中创建存储过程并不容易,接受XML作为输入。在那里你可以用任何命名来撕碎XML,并做你想做的事......请给出详细信息(尤其是你的XML的一个例子) – Shnugo
我想将XML数据中的XML数据添加到SQL服务器表中。 –
请您回答我评论的问题吗?你最近的评论没有添加任何消息到这...只是想一个SO用户的头...我们不知道你真的想要什么... – Shnugo