2016-11-17 66 views
0

我有這樣的問題:無效的嘗試調用讀前訪問一個字段()」

‘無效的嘗試調用讀前訪問一個字段()’

的TextBox1中以textbox3是。已經運行,但它停留在textbox4我搜索了這個錯誤的答案,但仍不能修復我的代碼樓下誰能幫

Private Sub DataGridView1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.DoubleClick 
    With DataGridView1 

     If .SelectedRows.Count > 0 Then 
      For i As Integer = .SelectedRows.Count - 1 To 0 Step -1 

       con = New MySqlConnection 
       con.ConnectionString = ServerLocalhost 
       con.Open() 
       ssql = "select * from bookinformation where BookNumber=" & "'" & DataGridView1.Rows(.SelectedRows(i).Index).Cells(0).Value() & "'" 
       dcmd = New MySqlCommand(ssql, con) 
       dreader = dcmd.ExecuteReader 
       If dreader.Read Then 
        TextBox1.Text = dreader.Item("BookNumber") 
        TextBox2.Text = dreader.Item("BooksTitle") 
        TextBox3.Text = dreader.Item("Quantity") 
        TextBox4.Text = dreader.Item("PublicPrice") 
        TextBox5.Text = dreader.Item("OfficeRemit") 
        TextBox10.Text = dreader.Item("StudentRemit") 
        If inchanged = False Then 
         inchanged = True 
         TextBox7.Text = dreader.Item("SaleFund") 
         TextBox6.Text = dreader.Item("Saving") 
         TextBox8.Text = dreader.Item("SalesPerBook") 
         Label15.Text = dreader.Item("TypeofBook") 
         inchanged = False 
        End If 
        If Label15.Text = ("Hard Bound") Then 
         CheckBox3.CheckState = CheckState.Unchecked 
         CheckBox2.CheckState = CheckState.Unchecked 
         CheckBox1.CheckState = CheckState.Checked 
        ElseIf Label15.Text = ("Paper Bound") Then 
         CheckBox3.CheckState = CheckState.Unchecked 
         CheckBox2.CheckState = CheckState.Checked 
         CheckBox1.CheckState = CheckState.Unchecked 
        ElseIf Label15.Text = ("Complete Set") Then 
         CheckBox3.CheckState = CheckState.Checked 
         CheckBox2.CheckState = CheckState.Unchecked 
         CheckBox1.CheckState = CheckState.Unchecked 
        Else 
         CheckBox3.CheckState = CheckState.Unchecked 
         CheckBox2.CheckState = CheckState.Unchecked 
         CheckBox1.CheckState = CheckState.Unchecked 
         MsgBox("No Type Detected!") 
        End If 

        TextBox1.Enabled = False 
        TextBox2.Enabled = False 
        TextBox3.Enabled = False 
        TextBox4.Enabled = False 
        TextBox5.Enabled = False 
        TextBox10.Enabled = False 
        TextBox7.Enabled = False 
        TextBox6.Enabled = False 
        TextBox8.Enabled = False 
        CheckBox1.Enabled = False 
        CheckBox2.Enabled = False 
        CheckBox3.Enabled = False 
       ElseIf id = 0 Then 
        MsgBox("No Record Found!", MsgBoxStyle.Information) 
       End If 

       '.Rows.RemoveAt(.SelectedRows(i).Index) 
      Next 
     Else 
      ' MsgBox("Please select to Add") 
     End If 

    End With 
+0

如果1-3的工作,那麼你可能有在PublicPrice字段中的數據問題,它不能將其轉換爲字符串。如果您還沒有這樣做,請在management studio中運行查詢並檢查數據。您可以嘗試TextBox4.Text = dreader.Item(「PublicPrice」)。Tostring()幫助您查找錯誤的來源。 –

回答

0

試試這個:。。?

If dreader.Read Then 
    dreader.Read() 

等等

+3

歡迎來到Stack Overflow!在發佈答案時,一點點解釋會很好,以便您可以幫助未來的訪問者瞭解此更改對他們的程序會做什麼。 –