我試圖將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