Private Sub Button73_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button73.Click
Dim serienaam
Dim oud
Dim aantal As Integer
Dim tt
Dim bedrag As Integer
Dim totaal As Integer
serienaam = ComboBox1.SelectedItem
oud = ComboBox2.SelectedItem
aantal = TextBox7.Text
tt = "" & serienaam & " " & oud & " " & aantal & " "
cmd = New SqlCommand("SELECT "" & oud & "" FROM series Where naamserie = "" & serienaam & "" ", con)
Dim sdr As SqlDataReader = cmd.ExecuteReader()
If sdr.Read = True Then
Dim week = sdr.Item(" "" & oud & "" ") "\gives a IndexOutOfRangeException...
bedrag = week
totaal = totaal + bedrag * aantal
sdr.Close()
"Label14.Text = totaal
ListBox1.Items.Add(tt)
End If
End Sub
Wenn ich das laufe gibt es ein IndexOutOfRangeException
auf
If sdr.Read = True Then
Dim week = sdr.Item(" "" & oud & "" ") |/<---|/gives a IndexOutOfRangeException...
bedrag = week
totaal = totaal + bedrag * aantal
Antworten:
1 für die Antwort № 1Richtig, ich werde versuchen, das verständlich zu beantworten.
Das Hauptproblem ist Ihre SQL-Abfrage.
New SqlCommand("SELECT "" & oud & "" FROM series ...
Wie Ihre Anfrage aussehen wird, ist dies. Oud wird in diesem Beispiel "ID" sein:
SELECT "ID" FROM series...
Was Sie der Datenbank sagen, ist folgendes:
Für jede Zeile, die Sie finden können, senden Sie die Zeichenfolge "ID" zurück.
Was Sie wirklich wollen, ist dies, beachten Sie das Fehlen von Apostrophen:
SELECT ID FROM series...
Dies wird den Wert in der Spalte namens ID zurückgeben.
Führen Sie diese Abfrage in diesem Link aus und Sie werden besser verstehen: http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
SELECT "CustomerID", CustomerID FROM Customers;
Als Bonus Code, der meiner Meinung nach funktioniert. Stellen Sie es einfach an die gleiche Stelle wie zuvor.
Dim oud as String
oud = ComboBox2.SelectedItem.ToString()
cmd = New SqlCommand("SELECT " & oud & " FROM series Where naamserie = "" & serienaam & "" ", con)
Dim week = sdr.Item(oud) "As rinukkusu said
0 für die Antwort № 2
Ich glaube nicht, dass Sie den Spaltennamen anführen müssen:
Dim week = sdr.Item(oud)