Visual Basic datagridview结果显示的结果数量不是文本

时间:2017-06-19 11:43:20

标签: mysql vb.net datagridview

可能是一个糟糕的头衔,但作为一个非英语的人,并非一切都很简单。

我的问题如下:

  1. 从Mysql数据库中获取数据(没问题)
  2. 在我的Datagridview中添加Combobox(没问题)
  3. 将结果插入该组合框(问题)
  4. 组合框显示结果的数量,它显示212是单击的可能性而不是MySQL单元格的值。

    我的代码如下所示:

    '//Henter drivere fra Printer Installer Database //'
            mysqlconnpi.Open()
            query = "Select model_name from printer_installer.ppp_drivers"
            data = New DataTable
            dataAdap = New Devart.Data.MySql.MySqlDataAdapter(query, mysqlconnpi)
            Dim cmb As New DataGridViewComboBoxColumn()
            cmb.HeaderText = "Select Data"
            cmb.Name = "cmb"
            cmb.MaxDropDownItems = 100
            cmb.Items.Add(dataAdap.Fill(data))
            DataGridView1.Columns.Add(cmb)
    

    结果如下:

    enter image description here

    我的代码出了什么问题?

    另外,我发现组合框只能处理100件物品,有没有办法让我获得更多?我目前在要列出的数据库中有212个驱动程序。

    编辑:

    我试着添加这一行: DataGridView1.DataSource = data 到代码只是为了检查“数据”是否有项目。 结果是这样的: Not allowed to insert embedded, image is here.

    代码现在是:

                '//Henter drivere fra Printer Installer Database //'
            mysqlconnpi.Open()
            query = "Select model_name from printer_installer.ppp_drivers"
            data = New DataTable
            dataAdap = New Devart.Data.MySql.MySqlDataAdapter(query, mysqlconnpi)
            Dim cmb As New DataGridViewComboBoxColumn()
            cmb.HeaderText = "driver"
            cmb.Name = "cmb"
            cmb.MaxDropDownItems = 100
            cmb.Items.Add(dataAdap.Fill(data))
            DataGridView1.Columns.Add(cmb)
            DataGridView1.DataSource = data
            'DataGridView1.DataSource = dataAdap.Fill(data)
            '-------------------------------------------------'
    

1 个答案:

答案 0 :(得分:0)

DataGridView可能正在查看字符串长度,这是查询结果的字符串属性,因此您可能希望通过包装字符串来发送结果。您可以使用linq代替您的SQL查询。

从printer_installer.ppp_drivers中的模型中选择新的{Key .name = model.model_name}