| |
VB & DatenbankenProgrammierungshilfe | | | Autor: Nika1978 | Datum: 07.07.15 20:59 |
| Hallo und guten Abend,
ich mache gerade einen Fernkurs zum SQL Datenbankentwickler und hänge jetzt an einer Stelle und komme einfach nicht auf die Lösung. Bevor ich mich an meinen Fernlehrer wende, dachte ich frage ich hier mal die Fachleute
Der Code lautet wie folgt:
Sub dgvFüllen()
Dim oReader As SqlDataReader
Try
dgvArtikel.Columns.Clear()
dgvArtikel.Rows.Clear()
dgvArtikel.Columns.Add("SpArtikelName", "Artikelname")
dgvArtikel.Columns.Add("SpLiefereinheit", "Liefereinheit")
dgvArtikel.Columns.Add("SpEinzelpreis", "Einzelpreis")
dgvArtikel.Columns.Add("SpBestellung", "Bestellung")
dgvArtikel.Columns(0).Width = 110
dgvArtikel.Columns(1).Width = 110
dgvArtikel.Columns(2).Width = 75
dgvArtikel.Columns(3).Width = 110
Verbindung()
oCmd.CommandText = "SELECT Lieferanten.LieferantenNr, Artikelname, Liefereinheit, Einzelpreis " & _
"IIF(Mindestbestand > Lagerbestand,Mindestbestand-Lagerbestand+25,'') AS Bestellung " & _
"FROM Lieferanten INNER JOIN Artikel ON Lieferanten.LieferantenNr = Artikel.LieferantenNr " & _
"WHERE ((Lieferanten.LieferantenNr)=" & Me.txtLieferantennr.Text & ")"
oReader = oCmd.ExecuteReader
Do While oReader.Read()
dgvArtikel.Rows.Add(oReader("Artikelname"), oReader("Liefereinheit"), FormatCurrency(oReader("Einzelpreis")), oReader("Bestellung"))
Loop
oReader.Close()
oCon.Close()
Dim mw As Double
mw = 0
For i = 0 To dgvArtikel.Rows.Count - 1
mw += (dgvArtikel.Rows(i).Cells(2).Value)
Next
mw /= dgvArtikel.Rows.Count
lblAusgabe.Text = "durchschnittlicher Preis: " & mw
Catch ex As Exception
MsgBox(Err.Description)
End Try
End Sub
Der Fehler muss irgendwo in dem IFF Teil liegen! Falsche Syntax in der Nähe von 'Mindestbestand'
Ich habe schon mehrfach alles kontrolliert anhand meines Arbeitsheftes aber soll so alles korrekt sein. Hat jemand eine Idee?
Vielen Dank schonmal! | |
Re: Programmierungshilfe | | | Autor: Manfred X | Datum: 07.07.15 22:19 |
| Hallo!
1. Du postest im falschen Forum. Der Beitrag gehört in ADO.Net/Datenbanken.
2. Verwende beim Posten von Code die entsprechenden Forum-Tags (Lesbarkeit).
3. Gewöhnlich benutzt man bei Abfragen durch ADO.Net z.B. die Klassen
TableAdapter, Dataset, SQLParameter und setzt DataBinding ein.
Was Du gerade lernst sind veraltete, unsichere Vorgehensweisen.
4. Gib bitte stets an, wie die im Code verwendeten Variablen deklariert bzw.
initialisiert worden sind (z.B. dgv, oCmd, lblAusgabe) und ggf. den SQL-Dialekt
und den Typ von abgefragten Tabellenspalten.
5. Soweit mir bekannt, erfordert das IIF-Statement in SQL-Abfragen
drei Parameter (Condition, TrueValue, FalseValue).
Vermutlich benötigt der dritte Parameter einen numerischen Wert.
6. Benutze Option Strict On und vermeide möglichst implizite Datentyp-Konvertierungen.
Die Count-Prüfung auf größer 0 fehlt - ehe nach der Abfrage numerische Ops durchgeführt
werden.
Beitrag wurde zuletzt am 07.07.15 um 22:46:01 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|