【问题标题】:Combobox on DataGridViewDataGridView 上的组合框
【发布时间】:2017-03-15 18:02:15
【问题描述】:

我在 datagridview 上有一个组合框。我能够填充组合框的值,但我没有做的是在加载 datagridview 时将数据库值填充到组合框“文本”中。

我希望这是有道理的。基本上我只是希望返回的数据反映在组合框显示中。

我们将非常感谢您的帮助。

 Dim cbo As DataGridViewComboBoxColumn
        If GlobalVariables.UsrSite = 0 Then
            SQL.ReadQuery("Select LogsReason as [Logs Update], IncNo as [Number], SiteName As [Site Name], FleetNo As [Fleet No], FleetType As [Fleet Type], Location,
            SMR as [Hours], TimeDown As [Down Time], EstTimeUp as [Est Repair], DateDiff(d, TimeDown, GetDate()) as [Days Down] 
            from UDOData where status = 'Down' order by [Days Down] Desc")
        Else
            SQL.ReadQuery("Select LogsReason as [Logs Update], IncNo as [Number], SiteName As [Site Name], FleetNo As [Fleet No], FleetType As [Fleet Type], Location,
            SMR as [Hours], TimeDown As [Down Time], EstTimeUp as [Est Repair], DateDiff(d, TimeDown, GetDate()) as [Days Down] from UDOData 
            Where SiteID = " & GlobalVariables.UsrSite & " and Status = 'Down' order by [Days Down] Desc")
        End If
        dgvUDO.DataSource = SQL.SQLDS.Tables(0)

        cbo.DataSource = SQL.SQLDS.Tables(0)
        cbo.DisplayMember = "Logs Update"
        cbo.ValueMember = "Logs Update"
        cbo.DataPropertyName = "Logs Update"

我收到异常错误提示“日志更新”不存在,但它会加载到数据网格视图中。

【问题讨论】:

  • 谢谢约翰,问题似乎已解决,老实说我不知道​​如何,当我再次运行它时它工作了。填充下拉列表中的项目的另一个问题我查看表 1 中的值列表,如何使用表 1 填充项目以及在加载 datagridview 时让显示成员反映该行数据中的任何内容?

标签: vb.net datagridview combobox


【解决方案1】:

我最终这样做了,这对我有用。

Dim cbo As DataGridViewComboBoxColumn
        cbo = dgvUDO.Columns("cboLogsUDO")
        Dim AltDb As New DataTable

        SQL.ReadQuery("Select Descrip from dbo.UDOLogs")
        AltDb = SQL.SQLDS.Tables(0)
        'LOAD DATA GRID VIEW DATA
        If GlobalVariables.UsrSite = 0 Then
            SQL.ReadQuery("Select ID, LogsReason as [Logs Update], IncNo as [Number], SiteName As [Site Name], FleetNo As [Fleet No], FleetType As [Fleet Type], Location,
            SMR as [Hours], TimeDown As [Down Time], EstTimeUp as [Est Repair], DateDiff(d, TimeDown, GetDate()) as [Days Down] 
            from UDOData where status = 'Down' order by [Days Down] Desc")
        Else
            SQL.ReadQuery("Select ID, LogsReason as [Logs Update], IncNo as [Number], SiteName As [Site Name], FleetNo As [Fleet No], FleetType As [Fleet Type], Location,
            SMR as [Hours], TimeDown As [Down Time], EstTimeUp as [Est Repair], DateDiff(d, TimeDown, GetDate()) as [Days Down] from UDOData 
            Where SiteID = " & GlobalVariables.UsrSite & " and Status = 'Down' order by [Days Down] Desc")
        End If

        'SET DATA GRIDVIEW DATA SOURCE
        dt = SQL.SQLDS.Tables(0)
        dgvUDO.DataSource = dt
        dgvUDO.Rows(0).Selected = True

        'LOAD UPDATE COMMAND FOR DATA GRIDVIEW CHANGES
        SQL.SQLDA.UpdateCommand = New SqlClient.SqlCommandBuilder(SQL.SQLDA).GetUpdateCommand

        'HIDE UNWANTED COLUMNS
        dgvUDO.Columns("Logs Update").Visible = False
        dgvUDO.Columns("ID").Visible = False


        'SET COMBOBOX ATTRIBUTES
        cbo.DataSource = AltDb
        cbo.DisplayMember = "Descrip"
        cbo.ValueMember = "Descrip"
        cbo.DataPropertyName = "Logs Update"

这使我能够将返回的数据网格视图中的值调用为组合框“文本”值,但将下拉项目显示为另一个表中的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-12
    • 2014-05-29
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2017-06-09
    相关资源
    最近更新 更多