[英]How to replace textbox column to checkbox column in datagridview with mysql query
我在将文本框列转换为vb.net中的复选框时遇到了这个问题。 数据来自mysql,我希望将一列显示为复选框列。
到目前为止,这是我的代码:
Private Sub data_load()
Dim mycommand As New MySqlCommand
Dim myadapter As New MySqlDataAdapter
Dim mydata As New DataTable
conn = New MySqlConnection
conn.ConnectionString = connstr
conn.Open()
mycommand.Connection = conn
mycommand.CommandText = "SELECT locator_id, name AS 'NAME', date AS 'DATE', destination AS 'DESTINATION', time_leave AS 'TIME LEAVE', time_return AS 'TIME RETURN', isOfficial AS 'OFFICIAL?' FROM locator_table ORDER BY locator_id DESC"
myadapter.SelectCommand = mycommand
myadapter.Fill(mydata)
DataGridView1.DataSource = mydata
DataGridView1.Refresh()
End Sub
这是图像:
如您所见, Official?
列不是复选框。
现在,我要Official?
成为复选框列。 Official?
的价值Official?
列仅是1和0。当值为1时,应选中复选框,否则取消选中。 如何实现呢?
您可以将列手动添加到DataTable中,从而为OFFICIAL指定布尔数据类型? 柱。 当DataTable绑定到网格时,它将显示复选框。
您可以将连接字符串直接传递给连接的构造函数,并将命令文本和连接直接传递给命令的构造函数。 Using ... End Using块可确保即使有错误,也可以关闭和处置数据库对象。
如果以后需要DataAdapter来更新数据库,则可以创建一个。
Private Sub data_load()
Dim mydata As New DataTable
mydata.Columns.Add("locator_id", GetType(Integer))
mydata.Columns.Add("NAME", GetType(String))
mydata.Columns.Add("DATE", GetType(Date))
mydata.Columns.Add("DESTINATION", GetType(String))
mydata.Columns.Add("TIME LEAVE", GetType(String))
mydata.Columns.Add("TIME RETURN", GetType(String))
mydata.Columns.Add("OFFICIAL?", GetType(Boolean))
Using conn As New MySqlConnection(constr)
Using mycommand As New MySqlCommand("SELECT locator_id, name AS 'NAME', date AS 'DATE', destination AS 'DESTINATION', time_leave AS 'TIME LEAVE', time_return AS 'TIME RETURN', isOfficial AS 'OFFICIAL?' FROM locator_table ORDER BY locator_id DESC", conn)
conn.Open()
mydata.Load(mycommand.ExecuteReader)
End Using
End Using
DataGridView1.DataSource = mydata
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.