【问题标题】:Visual basic datagridview result showing numbers of results not the textVisual basic datagridview 结果显示结果数而不是文本
【发布时间】:2017-06-19 11:43:20
【问题描述】:

可能是一个糟糕的标题,但作为一个不会说英语的人,并非一切都很简单。

我的问题如下:

  1. 从 Mysql 数据库中获取数据(没问题)
  2. 在我的 Datagridview 中添加一个组合框(没问题)
  3. 将结果插入该组合框(问题)

发生的情况是组合框向我显示了结果的数量,它向我显示了 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)

结果是这样的:

我的代码有什么问题?

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

编辑:

我测试添加这一行: DataGridView1.DataSource = 数据 代码只是为了检查“数据”是否有项目。 结果是这样的: 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)
        '-------------------------------------------------'

【问题讨论】:

    标签: mysql vb.net datagridview


    【解决方案1】:

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

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

    【讨论】:

    • 所以我应该让“查询”看起来像这样: query = "Select model_name From model in printer_installer.ppp_drivers select new with {Key .name =model.model_name}" ?我已经有几天没有编码了,如果我在这里错了,请纠正我。
    • 您检查 LINQ 或者如果您想坚持使用您的代码,那么我认为您可以创建一个具有属性的类来保存您的字符串并从您的 sql 查询中列出该类并传递它列表到 datagridview
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多