Ich habe dieses Problem:ungültiger Versuch, ein Feld zuzugreifen, bevor Read() aufrufen“
"Invalid Versuch, ein Feld zuzugreifen, bevor Read() aufrufen"
Die textbox1 zu TextBox3 ist . bereits läuft, aber es stecken in textbox4 ich eine Antwort für diesen Fehler gesucht, aber noch nicht beheben können Mein Code unten Könnte jemand helfen
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
Wenn 1-3 Sie wahrscheinlich ein Problem mit den Daten im PublicPrice Feld haben und es nicht umwandeln kann in einen String funktioniert dann. Wenn Sie dies noch nicht getan haben, führen Sie die Abfrage im Management Studio aus und überprüfen Sie die Daten. Sie können versuchen, TextBox4.Text = dreader.Item ("PublicPrice"). Tostring(), um Ihnen zu helfen, die Quelle des Fehlers zu finden. –