Ich schreibe ein Programm, das XML-Daten einer Datenbanktabelle zuordnet.Zuordnung zu XML-Datenbanktabelle
Dies ist, wie ich es versucht:
namespace TESTMAPPNING2
{
class Program
{
static void Main(string[] args)
{
Test();
}
static void Test()
{
string connetionString = null;
SqlConnection connection;
SqlCommand command;
SqlDataAdapter adpter = new SqlDataAdapter();
DataSet ds = new DataSet();
XmlReader xmlFile;
string sql = null;
//The XML-tags that i want to insert in the table columns
string PersonalIdentityNumber = null;
string ProtectedIdentity = null;
int ReferedCivicRegistrationNumber = 0;
string UnregistrationReason = null;
DateTime? UnregistrationDate = null;
string MessageComputerComputer = null;
int GivenNameNumber = 0;
string FirstName = null;
string LastName = null;
string NotifyName = null;
DateTime? NationalRegistrationDate = null;
string NationalRegistrationCountyCode = null;
string NationalRegistrationMunicipalityCode = null;
string NationalRegistrationCoAddress = null;
string NationalRegistrationDistributionAddress1 = null;
string NationalRegistrationDistributionAddress2 = null;
string NationalRegistrationPostCode = null;
string NationalRegistrationCity = null;
string NationalRegistrationNotifyDistributionAddress = null;
string NationalRegistrationNotifyPostCode = null;
string NationalRegistrationNotifyCity = null;
string ForeignDistrubtionAddress1 = null;
string ForeignDistrubtionAddress2 = null;
string ForeignDistrubtionAddress3 = null;
string ForeignDistrubtionCountry = null;
string ForeignDate = null;
string BirthCountyCode = null;
string BirthParish = null;
string ForeignBirthCity = null;
string CitizenshipCode = null;
DateTime? CitizenshipDate = null;
string Email = null;
string Telephone = null;
string Mobiletelephone = null;
string Gender = null;
string NotNewsPaper = null;
string Note = null;
string StatusCode = null;
string NationalRegistrationCode = null;
DateTime? RegistrationDate = null;
DateTime? LastUpdatedFromNavet = null;
string TemporaryDistrubtionAddress1 = null;
string TemporaryDistrubtionAddress2 = null;
string TemporaryDistrubtionAddress3 = null;
string TemporaryDistrubtionCountry = null;
string Password = null;
string VisibilityLevel = null;
string LastChangedBy = null;
DateTime? LastChangedDate = null;
int SeamanIdentity = 0;
string Category = null;
connetionString = "Data Source=tsrv2062;Initial Catalog=Bums;User ID=BumsUser;Password=2tusen7Bums";
connection = new SqlConnection(connetionString);
xmlFile = XmlReader.Create("navetout.xml", new XmlReaderSettings());
ds.ReadXml(xmlFile);
int i = 0;
connection.Open();
for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
PersonalIdentityNumber = ds.Tables[0].Rows[i].ItemArray[0].ToString();
SqlCommand command1 = new SqlCommand("INSERT INTO Seamen(PersonalIdentityNumber, ProtectedIdentity, ReferedCivicRegistrationNumber,UnregistrationReason,UnregistrationDate,MessageComputerComputer,GivenNameNumber,FirstName,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) values(@PersonalIdentityNumber, @ProtectedIdentity, @ReferedCivicRegistrationNumber,@UnregistrationReason,@UnregistrationDate,@MessageComputerComputer,@GivenNameNumber,@FirstName,@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)", connection);
command1.Parameters.AddWithValue("@PersonalIdentityNumber", PersonalIdentityNumber);
command1.Parameters.AddWithValue("@ProtectedIdentity", ProtectedIdentity);
command1.Parameters.AddWithValue("@ReferedCivicRegistrationNumber", ReferedCivicRegistrationNumber);
command1.Parameters.AddWithValue("@UnregistrationReason", UnregistrationReason);
command1.Parameters.AddWithValue("@UnregistrationDate", UnregistrationDate);
command1.Parameters.AddWithValue("@MessageComputerComputer", MessageComputerComputer);
command1.Parameters.AddWithValue("@GivenNameNumber", GivenNameNumber);
command1.Parameters.AddWithValue("@FirstName", FirstName);
command1.Parameters.AddWithValue("@LastName", LastName);
command1.Parameters.AddWithValue("@NotifyName", NotifyName);
command1.Parameters.AddWithValue("@NationalRegistrationDate", NationalRegistrationDate);
command1.Parameters.AddWithValue("@NationalRegistrationCountyCode", NationalRegistrationCountyCode);
command1.Parameters.AddWithValue("@NationalRegistrationMunicipalityCode", NationalRegistrationMunicipalityCode);
command1.Parameters.AddWithValue("@NationalRegistrationCoAddress", NationalRegistrationCoAddress);
command1.Parameters.AddWithValue("@NationalRegistrationDistributionAddress1", NationalRegistrationDistributionAddress1);
command1.Parameters.AddWithValue("@NationalRegistrationDistributionAddress2", NationalRegistrationDistributionAddress2);
command1.Parameters.AddWithValue("@NationalRegistrationPostCode", NationalRegistrationPostCode);
command1.Parameters.AddWithValue("@NationalRegistrationCity", NationalRegistrationCity);
command1.Parameters.AddWithValue("@NationalRegistrationNotifyDistributionAddress", NationalRegistrationNotifyDistributionAddress);
command1.Parameters.AddWithValue("@NationalRegistrationNotifyPostCode", NationalRegistrationNotifyPostCode);
command1.Parameters.AddWithValue("@NationalRegistrationNotifyCity", NationalRegistrationNotifyCity);
command1.Parameters.AddWithValue("@ForeignDistrubtionAddress1", ForeignDistrubtionAddress1);
command1.Parameters.AddWithValue("@ForeignDistrubtionAddress2", ForeignDistrubtionAddress2);
command1.Parameters.AddWithValue("@ForeignDistrubtionAddress3", ForeignDistrubtionAddress3);
command1.Parameters.AddWithValue("@ForeignDistrubtionCountry", ForeignDistrubtionCountry);
command1.Parameters.AddWithValue("@ForeignDate", ForeignDate);
command1.Parameters.AddWithValue("@BirthCountyCode", BirthCountyCode);
command1.Parameters.AddWithValue("@BirthParish", BirthParish);
command1.Parameters.AddWithValue("@ForeignBirthCity", ForeignBirthCity);
command1.Parameters.AddWithValue("@CitizenshipCode", CitizenshipCode);
command1.Parameters.AddWithValue("@CitizenshipDate", CitizenshipDate);
command1.Parameters.AddWithValue("@Email", Email);
command1.Parameters.AddWithValue("@Telephone ", Telephone);
command1.Parameters.AddWithValue("@Mobiletelephone", Mobiletelephone);
command1.Parameters.AddWithValue("@Gender", Gender);
command1.Parameters.AddWithValue("@NotNewsPaper", NotNewsPaper);
command1.Parameters.AddWithValue("@Note", Note);
command1.Parameters.AddWithValue("@StatusCode", StatusCode);
command1.Parameters.AddWithValue("@NationalRegistrationCode", NationalRegistrationCode);
command1.Parameters.AddWithValue("@RegistrationDate", RegistrationDate);
command1.Parameters.AddWithValue("@LastUpdatedFromNavet", LastUpdatedFromNavet);
command1.Parameters.AddWithValue("@TemporaryDistrubtionAddress1", TemporaryDistrubtionAddress1);
command1.Parameters.AddWithValue("@TemporaryDistrubtionAddress2", TemporaryDistrubtionAddress2);
command1.Parameters.AddWithValue("@TemporaryDistrubtionAddress3", TemporaryDistrubtionAddress3);
command1.Parameters.AddWithValue("@TemporaryDistrubtionCountry", TemporaryDistrubtionCountry);
command1.Parameters.AddWithValue("@Password", Password);
command1.Parameters.AddWithValue("@VisibilityLevel", VisibilityLevel);
command1.Parameters.AddWithValue("@LastChangedBy", LastChangedBy);
command1.Parameters.AddWithValue("@LastChangedDate", LastChangedDate);
command1.Parameters.AddWithValue("@SeamanIdentity", SeamanIdentity);
command1.Parameters.AddWithValue("@Category", Category);
command1.ExecuteNonQuery();
}
connection.Close();
Console.WriteLine("Done");
}
}
}
ich Fehler auf dem command1.ExecuteNonQuery();
Der Fehler
Der Name "NationalRegistrationNotifyDistributionAddress", sagt ist in diesem Zusammenhang nicht zulässig. Gültige Ausdrücke sind Konstanten, konstante Ausdrücke und (in einigen Kontexten) Variablen. Spaltennamen sind nicht erlaubt.
Die XML navetout.xml
sieht wie folgt aus:
<?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>194903188953</PersonNr>
</PersonId>
<HanvisningsPersonNr xsi:nil="true" />
<Namn>
<Tilltalsnamnsmarkering>20</Tilltalsnamnsmarkering>
<Fornamn>Erik Lennart</Fornamn>
<Mellannamn xsi:nil="true" />
<Efternamn>Enberg</Efternamn>
<Aviseringsnamn xsi:nil="true" />
</Namn>
<Folkbokforing>
<Folkbokforingsdatum>20060512</Folkbokforingsdatum>
<LanKod>25</LanKod>
<KommunKod>14</KommunKod>
<ForsamlingKod xsi:nil="true" />
<Fastighetsbeteckning>PÅLÄNGE 6:38</Fastighetsbeteckning>
<FiktivtNr>0</FiktivtNr>
</Folkbokforing>
<Adresser>
<Folkbokforingsadress>
<CareOf xsi:nil="true" />
<Utdelningsadress1 xsi:nil="true" />
<Utdelningsadress2>STORVÄGEN 65</Utdelningsadress2>
<PostNr>95204</PostNr>
<Postort>PÅLÄNG</Postort>
</Folkbokforingsadress>
<Riksnycklar>
<FastighetsId>250015520</FastighetsId>
<AdressplatsId>2416233</AdressplatsId>
<LagenhetsId>22143838</LagenhetsId>
</Riksnycklar>
</Adresser>
<Fodelse>
<HemortSverige>
<FodelselanKod>25</FodelselanKod>
<Fodelseforsamling>NEDERKALIX</Fodelseforsamling>
</HemortSverige>
</Fodelse>
<Medborgarskap>
<MedborgarskapslandKod>SE</MedborgarskapslandKod>
<Medborgarskapsdatum>0</Medborgarskapsdatum>
</Medborgarskap>
</Personpost> </FolkbokforingspostTYPE> <FolkbokforingspostTYPE>
<Sekretessmarkering xsi:nil="true" />
<Personpost>
<PersonId>
<TilldelatPersonNrSamordningsNr>195405869370</TilldelatPersonNrSamordningsNr>
</PersonId>
<HanvisningsPersonNr xsi:nil="true" />
<Namn>
<Fornamn styrkt="J">Eduardo Metran</Fornamn>
<Mellannamn xsi:nil="true" />
<Efternamn styrkt="J">Garcia</Efternamn>
<Aviseringsnamn xsi:nil="true" />
</Namn>
<Folkbokforing>
<Folkbokforingsdatum xsi:nil="true" />
<LanKod>14</LanKod>
<KommunKod xsi:nil="true" />
<ForsamlingKod xsi:nil="true" />
<Fastighetsbeteckning xsi:nil="true" />
</Folkbokforing>
<Adresser />
<Fodelse>
<OrtUtlandet>
<FodelseortUtland styrkt="J">Sta Cruz Zambales</FodelseortUtland>
<Fodelseland>FILIPPINERNA</Fodelseland>
</OrtUtlandet>
</Fodelse>
<Medborgarskap>
<MedborgarskapslandKod styrkt="J">PH</MedborgarskapslandKod>
<Medborgarskapsdatum>0</Medborgarskapsdatum>
</Medborgarskap>
</Personpost> </FolkbokforingspostTYPE> </ArrayOfFolkbokforingspostTYPE>
Warum ich den Fehler?
Und vor allem, wie kann ich die XML-Tags "übersetzen", um die Tabellenspalten anzupassen?
Für welches RDBMS ist das? Bitte fügen Sie einen Tag angeben, ob Sie mit 'mysql',' postgresql', 'sql-server',' oracle' oder 'db2' - oder etwas ganz anderes. –
Es ist für SQL-Server –