Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DataSet.WriteXML prazni elementi

[es] :: .NET :: DataSet.WriteXML prazni elementi

[ Pregleda: 1927 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mco
Beograd

Član broj: 44121
Poruke: 15
*.106.eunet.yu.



Profil

icon DataSet.WriteXML prazni elementi19.01.2005. u 12:28 - pre 234 meseci
Pozdrav,
Trenutno sam u fazi realizacije jedne male aplikacije koja treba da pristupi tabeli u SQL bazi na jednom serveru, dohvati izabrane podatke i te podatke smesti u drugu tabelu na nekom drugom serveru.

Generalno je sve rešeno osim jednog problema.
Problem je sledeći:
Pošto sam odlučila da koristim XML file kao među file za razmenu podataka, pojavio mi se problem sa elementima koji imaju null kao vrednost u tabeli baze.
Hoću da u rezultujućem xml file-u imam SVE elemente bez obzira da li su null ili imaju korisnu vrednost jer kada hoću da parsiram taj isti file i da upisujem red po red u destination table imam problem jer nemam sve kolone koje očekujem.

Čini mi se da sam nekad negde pročitala da mogu da nateram da se u XML fajl upiše i prazan element ali sad to ne mogu da nađem.
Kod koji koristim je otprilike:
"
conn.ConnectionString = connStr
conn.Open()
sqlStr = "select * FROM tbl1 "
cmd.CommandText = sqlStr
cmd.CommandType = CommandType.Text
cmd.Connection = conn
da.SelectCommand = cmd
da.Fill(ds)
conn.Close()

file = "file.xml"
Dim myStreamWriter As New StreamWriter(file)
ds.WriteXml(myStreamWriter)
myStreamWriter.Close()
"
Sql upit daje tabelu sa kolonama koje imaju null vrednosti u različitim redovima. U rezultujućem xml file-u, elementi sa null vrednostima nisu unesene a htela bih da budu.

Da li neko zna kako da to postignem?

Hvala unapred
 
Odgovor na temu

Vladan Ostojic
Student
Novi Sad

Član broj: 11055
Poruke: 15
*.leased.neobee.net.



Profil

icon Re: DataSet.WriteXML prazni elementi19.01.2005. u 13:28 - pre 234 meseci
Kad snimas xml umjesto
ds.WriteXml(myStreamWriter)
pozovi
ds.WriteXml(myStreamWriter, XmlWriteMode.WriteSchema)
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
194.106.171.*



+311 Profil

icon Re: DataSet.WriteXML prazni elementi19.01.2005. u 13:28 - pre 234 meseci
Standardno, DataSet ne podržava serijalizaciju u ovom obliku, tako da ako ručno parsiraš rezultujući XML moraćeš i ručno da ga praviš.
Druga jednostavnija varijanta je, normalno ako imaš i na drugoj strani mogućnost korištenja .Net-a, da koristiš ds.WriteXml(myStreamWriter, XmlWriteMode.WriteSchema) da bi uključila i strukturu DataSet-a u XML a zatim da tamo gde primaš taj XML njega pretvoriš nazad u DataSet. Ovo je inače i veoma slično načinu na koji se prenosi DataSet pri pozivu WebService-a.
Treći način je serijalizacija u XML zajedno sa strukturom (XmlWriteMode.WriteSchema) a zatim prvo parsiranje šeme na odredištu, a zatim i samih podataka.
Savet: Za komunikaciju između servera koristi WebService ukoliko je to moguće.
 
Odgovor na temu

mco
Beograd

Član broj: 44121
Poruke: 15
*.239.eunet.yu.



Profil

icon Re: DataSet.WriteXML prazni elementi20.01.2005. u 08:06 - pre 234 meseci
Hvala, uspela sam da se "izborim" sa početnim problemom tako što sam proveravala da li je sadržaj elementa = Null, međutim, drugi problemi su iznikli.
Na primer, upisivanjem System.DBNull.Value u string koji predstavlja sql upit, ne rešava problem, dobijam SqlException.
"
If Equals(DBNull.Value, ds.Tables(0).Rows(i).Item(clmns(j))) = False Then
If ds.Tables(0).Rows(i).Item(clmns(j)).GetType Is GetType(String) Then
sqlStr = sqlStr & "'" & ds.Tables(0).Rows(i).Item(clmns(j)) & "', "
Else
sqlStr = sqlStr & ds.Tables(0).Rows(i).Item(clmns(j)) & ", "
End If
Else
sqlStr = sqlStr & System.DBNull.Value & ", "
End If
"
Kada ovaj string pokušam da izvršim direktno na SQL Serveru, dobijem istu poruku dok ne upišem u sve prazne pozicije 'null'.

Drugi problem se javio zbog imenovanja kolona tabele (na šta ne mogu da utičem). Kolona npr. ima ime '[element]'. U xml file-u se upiše 'element', bez []. Ja dohvatam nazive kolona u petlji i kreiram string. Unapred ne znam koje kolone ću dobiti kao rezultat pa ne mogu ni da dodajem [].

Kako da dobijem neizmenjene nazive kolona u xml file-u?
 
Odgovor na temu

[es] :: .NET :: DataSet.WriteXML prazni elementi

[ Pregleda: 1927 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.