2016-11-17 67 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!在发布答案时,一点点解释会很好,以便您可以帮助未来的访问者了解此更改对他们的程序会做什么。 –