IndexOutOfRangeException vb.net - vb.net, sql-server-2012

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

जब मैं इसे चलाता हूं तो यह एक देता है IndexOutOfRangeException पर

If sdr.Read = True Then
Dim week = sdr.Item(" "" & oud & "" ") |/<---|/gives a IndexOutOfRangeException...
bedrag = week
totaal = totaal + bedrag * aantal

उत्तर:

उत्तर № 1 के लिए 1

ठीक है, मैं इसे समझने योग्य फैशन में जवाब देने की कोशिश करूंगा।

मुख्य मुद्दा आपकी एसक्यूएल क्वेरी है।

New SqlCommand("SELECT "" & oud & "" FROM series ...

आपकी क्वेरी कैसा दिखाई देगी यह है। ओड इस उदाहरण में "आईडी" होगा:

SELECT "ID" FROM series...

आप डेटाबेस को क्या कह रहे हैं यह है:

प्रत्येक पंक्ति के लिए आप स्ट्रिंग "आईडी" वापस भेज सकते हैं।

आप वास्तव में क्या चाहते हैं यह है, apostrophes की कमी पर ध्यान दें:

SELECT ID FROM series...

यह आईडी नामक कॉलम में मान वापस कर देगा।

इस लिंक को इस लिंक में चलाएं और आप बेहतर समझेंगे: http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all

SELECT "CustomerID", CustomerID FROM Customers;

बोनस के रूप में, मुझे लगता है कि कोड काम करेगा। बस इसे पहले की तरह एक ही स्थान पर रखें।

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 № 2

मुझे नहीं लगता कि आपको कॉलम नाम उद्धृत करने की आवश्यकता है:

Dim week = sdr.Item(oud)