Moin,
ich habe ein Problem:
Undzwar führe ich eine DB Suche durch die mir mehrere Artikel in eine Klasse füllt , diese Hauptartikel können jeweils keine oder auch mehrere (nach oben hin unbegrenzt) AbrechnungsArtikel haben , diese wiederum möchte ich in einer zweiten Abfrage an die DB auslesen, wenn ich die Abfrage manuell ausführe werden mir auch die richtigen ergebnisse ausgegeben , in meiner Application nicht, mittlerweile habe ich auch herausgefunden woran es liegt , allerdings weiß ich nicht wie ich es beheben soll.
Undzwar durchlaufe ich zwar wie gewollt für jeden Artikel einmal die DB abfrage , allerdings bekomme ich immer nur das erste ergebnis zurück, was natürlich nicht das gewünschte Ergebnis ist wenn der Artikel z.B. 3 Abrechnungsartikel hat ( das weiß ich vorher aber noch nicht).
Also der langen rede kurzer Sinn: Wie bekomme ich zb alle 3 Abrechnungsergebnisse augegeben um sie in meine Klasse zu schreiben?
Vielen dank schon mal
Die vd.schreibeUndPrintMeldung könnt ihr übrigens Ignorieren , das sind nur meine Debugger
ich habe ein Problem:
Undzwar führe ich eine DB Suche durch die mir mehrere Artikel in eine Klasse füllt , diese Hauptartikel können jeweils keine oder auch mehrere (nach oben hin unbegrenzt) AbrechnungsArtikel haben , diese wiederum möchte ich in einer zweiten Abfrage an die DB auslesen, wenn ich die Abfrage manuell ausführe werden mir auch die richtigen ergebnisse ausgegeben , in meiner Application nicht, mittlerweile habe ich auch herausgefunden woran es liegt , allerdings weiß ich nicht wie ich es beheben soll.
Undzwar durchlaufe ich zwar wie gewollt für jeden Artikel einmal die DB abfrage , allerdings bekomme ich immer nur das erste ergebnis zurück, was natürlich nicht das gewünschte Ergebnis ist wenn der Artikel z.B. 3 Abrechnungsartikel hat ( das weiß ich vorher aber noch nicht).
Also der langen rede kurzer Sinn: Wie bekomme ich zb alle 3 Abrechnungsergebnisse augegeben um sie in meine Klasse zu schreiben?
Vielen dank schon mal
VB.NET-Quellcode
- For Each ar As ArtikelListen In ArtikelArray
- sqlstring = "SELECT a.intartikelnr, wgranr2=right('0000'+ltrim(rtrim(a.warengruppenr)),5)+right('000'+ltrim(rtrim(a.artikelnr)),4)," _
- + "a.KurzBez, a.himi_nr, a.Bez1, a.Bez2, a.Bez3," _
- + "m.mwstsatz, mengeneinheit= isnull(h.bez,h.Mengeneinheitid)," _
- + "wgranr=ltrim(rtrim(a.warengruppenr))+'/'+ltrim(rtrim(a.artikelnr))," _
- + "lieferantenkurzname=L.kurzname," _
- + "a.PharmaZentralNummer," _
- + "a.EAN, a.SaniZentralNummer," _
- + "a.LfArtikelNr, a.alternnr," _
- + "a.Eigenschaft1," _
- + "a.Eigenschaft2," _
- + "a.Eigenschaft3," _
- + "Eigenschaft4=a.Modell, a.Lagerkorrektur FROM Artikel a, Mengeneinheit h, mwstsatz m, lieferant L , ArtikelAbrechPos p WHERE h.Mengeneinheitid=*a.Mengeneinheitid AND " _
- + "m.mwst_vh0=a.mwst_vh0 AND a.lieferantnr*=L.lieferantnr " _
- + "AND isnull(a.archiv,'0')='0' and a.verkaufskennzeichen='F' " _
- + "AND a.intartikelnr = p.IntArtikelNrAbrech AND p.IntArtikelNr = " + ar.intArtikelNr
- cmd.Parameters.Clear()
- cmd.CommandText = sqlstring
- cmd.CommandType = CommandType.Text
- Try
- reader = cmd.ExecuteReader(CommandBehavior.SingleRow)
- Do While reader.Read()
- If reader.HasRows Then
- ar.hatAbrechPos = True
- abrechnungsArtikel.intArtikelNr = ar.intArtikelNr
- If Not IsDBNull(reader("intartikelnr")) Then
- abrechnungsArtikel.AbrintArtikelNr = reader("intartikelnr").ToString
- End If
- If Not IsDBNull(reader("KurzBez")) Then
- abrechnungsArtikel.AbrKurzBez = reader("KurzBez").ToString
- End If
- If Not IsDBNull(reader("wgranr")) Then
- abrechnungsArtikel.AbrWGRANR = reader("wgranr").ToString
- End If
- If Not IsDBNull(reader("Bez1")) Then
- abrechnungsArtikel.AbrBez1 = reader("Bez1").ToString
- End If
- If Not IsDBNull(reader("Bez2")) Then
- abrechnungsArtikel.AbrBez2 = reader("Bez2").ToString
- End If
- If Not IsDBNull(reader("Bez3")) Then
- abrechnungsArtikel.AbrBez3 = reader("Bez3").ToString
- End If
- If Not IsDBNull(reader("Eigenschaft1")) Then
- abrechnungsArtikel.AbrEig1 = reader("Eigenschaft1").ToString
- End If
- If Not IsDBNull(reader("Eigenschaft2")) Then
- abrechnungsArtikel.AbrEig2 = reader("Eigenschaft2").ToString
- End If
- If Not IsDBNull(reader("Eigenschaft3")) Then
- abrechnungsArtikel.AbrEig3 = reader("Eigenschaft3").ToString
- End If
- If Not IsDBNull(reader("himi_nr")) Then
- abrechnungsArtikel.Abrhimi = reader("himi_nr").ToString
- End If
- If Not IsDBNull(reader("lieferantenkurzname")) Then
- abrechnungsArtikel.AbrLieferant = reader("lieferantenkurzname").ToString
- End If
- If Not IsDBNull(reader("LfArtikelNr")) Then
- abrechnungsArtikel.AbrLfArtikelNr = reader("LfArtikelNr").ToString
- End If
- If Not IsDBNull(reader("PharmaZentralNummer")) Then
- abrechnungsArtikel.Abrpzn = reader("PharmaZentralNummer").ToString
- End If
- If Not IsDBNull(reader("EAN")) Then
- abrechnungsArtikel.Abrean = reader("EAN").ToString
- End If
- If Not IsDBNull(reader("SaniZentralNummer")) Then
- abrechnungsArtikel.Abrszn = reader("SaniZentralNummer").ToString
- End If
- If Not IsDBNull(reader("alternnr")) Then
- abrechnungsArtikel.Abralternnr = reader("alternnr").ToString
- End If
- If Not IsDBNull(reader("mengeneinheit")) Then
- abrechnungsArtikel.Abrmengeneinheit = reader("mengeneinheit").ToString
- End If
- If Not IsDBNull(reader("Lagerkorrektur")) Then
- If reader("Lagerkorrektur").ToString = "1" Then
- abrechnungsArtikel.AbrLagerkorrektur = True
- Else
- abrechnungsArtikel.AbrLagerkorrektur = False
- End If
- End If
- vd.schreibeUndPrintMeldung(abrechnungsArtikel.intArtikelNr + "' abrechnungsIntartikelNr='" + abrechnungsArtikel.AbrintArtikelNr + "'" + vbCrLf)
- vd.schreibeUndPrintMeldung("gsqlstring='" + sqlstring + "'" + vbCrLf)
- AbrechnungsListe.Add(abrechnungsArtikel)
- End If
- loop
- reader.Close()
- Catch ex As Exception
- Response.Write(ex.ToString + "<br/>")
- vd.schreibeUndPrintMeldung("gsqlstring='" + sqlstring + "'" + vbCrLf)
- vd.schreibeUndPrintMeldung(ex.ToString + vbCrLf)
- End Try
- If Not reader Is Nothing Then
- reader.Close()
- End If
- Next
Die vd.schreibeUndPrintMeldung könnt ihr übrigens Ignorieren , das sind nur meine Debugger