2014-02-05 47 views
0

我一直收到此錯誤「無法通信InvalidArgument ='11209485'的值對'index'無效。參數名稱:index」當我嘗試從數據庫中檢索卡號並將它們放在一個組合框中,以便用戶可以在VB.NET 2012中選擇他們的卡號。11209485是數據庫中的第一個卡號,所以我假設連接沒有問題,但我不知道根本不瞭解這個錯誤。InvalidArgument ='11209485'的值對'index'無效。參數名稱:在VB.NET中運行SQL查詢時發生索引錯誤

我很感激在這件事上的任何幫助。謝謝!

進口MySql.Data

進口MySql.Data.MySqlClient

公共類Form1中

Dim dbCon As MySqlConnection 
Dim strQuery As String = "" 
Dim SQLcmd As MySqlCommand 
Dim DataReader As MySqlDataReader 

' load application Form 
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 

    'Prepare connection and query 
    Try 
     dbCon = New MySqlConnection("Server=localhost;Database=***;Uid=***;Pwd=***") 

     strQuery = "SELECT CardNumber " & 
        "FROM Account" 

     SQLcmd = New MySqlCommand(strQuery, dbCon) 

     'Open the connection 
     dbCon.Open() 

     ' create database reader to read information from database 
     DataReader = SQLcmd.ExecuteReader 

     ' fill ComboBox with account numbers 
     While DataReader.Read 
      cboAccountNumbers = cboAccountNumbers.Items(DataReader("CardNumber")) 
     End While 

     'Close the connection 
     DataReader.Close() 
     dbCon.Close() 

    Catch ex As Exception 

     MsgBox("Failure to communicate" & vbCrLf & vbCrLf & ex.Message) 


    End Try 
End Sub 

末級

回答

0

該錯誤是在這條線:

cboAccountNumbers = cboAccountNumbers.Items(DataReader("CardNumber")) 

您正在嘗試閱讀組合框中的第11209485個項目,並且沒有那麼多項目。試試這個:

cboAccountNumbers.Items.Add(DataReader("CardNumber")) 
+0

當我改變它的時候,它強調它說:'Integer'類型的值不能被轉換爲'System.Windows.Forms.ComboBox'。 我是否需要將其轉換爲整數? 我知道如果我將它寫爲 cboAccountNumbers.Text = cboAccountNumbers.Text&DataReader.Item(「CardNumber」),它會將它們作爲一個字符串輸出到combox框中。那麼我只需要在cboAccountNumbers之後放置一個.something? – user3275784

+0

我得到它的工作!我改變它爲cboAccountNumbers.Items.Add(DataReader(「CardNumber」))像你說的,但在開始時忽略了「cboAccountNumbers =」!謝謝你的幫助! – user3275784

+0

@ user3275​​784 - 對不起,我的壞,我的意思是刪除。我會更新我的帖子。 –

相關問題