我有一個datagridview(有5列:4個文本框和1個組合框),它從mysql加載數據。這是我使用的代碼,當我在所有文本框列中嘗試它時,它工作正常。但是,當我改變的最後一列到一個組合框,我得到了一個錯誤說:如何從mysql中填充datagridview組合框 - vb.net
「以下異常在DataGridView發生:
System.ArgumentException:的DataGridViewComboBoxCell值無效
要更換這個默認對話框請處理DataError事件。「
Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sqlconn.ConnectionString = "server=localhost;userid=root;password=12345;database=db_scheduling"
teacherQuery("SELECT * FROM tbl_teacher ORDER BY id")
End Sub
Sub teacherQuery(ByVal strings)
Try
Dim sqlcommand As New MySqlCommand
Dim sqladapter As New MySqlDataAdapter
sqlcommand.Parameters.AddWithValue("@id", AddTeacher.txt_AddTeacher_ID.Text)
sqlcommand.Parameters.AddWithValue("@lname", AddTeacher.txt_AddTeacher_Lname.Text)
sqlcommand.Parameters.AddWithValue("@fname", AddTeacher.txt_AddTeacher_Fname.Text)
sqlcommand.Parameters.AddWithValue("@mname", AddTeacher.txt_AddTeacher_Mname.Text)
sqlcommand.Parameters.AddWithValue("@subject_to_teach", AddTeacher.cmb_AddTeacher_Subject.SelectedItem)
Dim Table As New DataTable
With sqlcommand
.CommandText = strings
.Connection = sqlconn
End With
With sqladapter
.SelectCommand = sqlcommand
.Fill(Table)
End With
'----HERES THE PROBLEM-----'
datagrid_Teacher.Rows.Clear()
For x As Integer = 0 To Table.Rows.Count - 1
datagrid_Teacher.Rows.Add(Table(x)("id"),
Table(x)("lname"),
Table(x)("fname"),
Table(x)("mname"),
Table(x)("subject_to_teach"))
Next
'---------------------------'
'Bold header
With datagrid_Teacher.ColumnHeadersDefaultCellStyle
.Font = New Font(datagrid_Teacher.Font, FontStyle.Bold)
End With
Catch ex As Exception
MessageBox.Show("ERROR: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
編輯:在這裏的問題是在DataGridView添加數據(組合框(subject_to_teach列))
嘗試過了,它只是將數據裝載到datagridview的文本框。 –
@LeeSong檢查更新後的答案。 –
我沒有得到一個錯誤,但它不會從MySQL中加載數據(只在組合框列中) –