DataGridView依据下拉列表显示数据

     我们都知道,DataGridView能够直接绑定数据源。显示数据库中的数据。可是我想做的是能够对他进行条件查询,依据用户级别选择不同级别的记录。


    以上这个控件就是DataGridView控件,能够用它直接绑定数据源。显示数据库中表格的数据。

    加入控件以后,出来一个DataGridView任务,依照步骤一步一步。就会成功绑定数据源。

    绑定数据源之后会显示出来我们想要的表格。如图:


2、接下来就是加入查询了,注意查询语句不要写错。

注意我们的查询语句不能写错。

查询用户级别为一般用户的就写为:

SELECT * FROM Where Level="一般用户",之后点击查询生成器。以此类推,分别查询出来3个用户级别的相应的信息来。



     当我们点击不同用户级别的信息会出来相应的用户信息。可是这不是我想要的效果,我想用的是Combobox控件。会让自己的界面美观一些。当然了,上边那个一般用户、管理员、操作员。也就是ToolStrip控件能够转化为Combobox控件。可是转化后怎么用,我不会,所以想了一个笨方法。

我加入一个Combobox控件,在界面上把ToolStripc删除了,尽管删了。可是加入查询的代码还是有的。我把代码做一定改动。改在Combobox_SelectedIndexChanged事件下。

再把UserIDUserNameHead 改成中文形式。

编辑列(HeaderText属性)

 Private Sub ComboBox1_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles comboLevel.SelectedIndexChanged
        If comboLevel.Text = "一般用户" Then    '假设ComboLevel选择的是一般用户,则查询一般用户的记录
            Me.T_UserInfoTableAdapter.一般用户(Me.UserInfo.T_UserInfo)
        End If
        If comboLevel.Text = "操作员" Then    '假设ComboLevel选择的是操作员,则查询操作员的记录
            Me.T_UserInfoTableAdapter.操作员(Me.UserInfo.T_UserInfo)
        End If
        If comboLevel.Text = "管理员" Then     '假设ComboLevel选择的是管理员,则查询管理员的记录
            Me.T_UserInfoTableAdapter.管理员(Me.UserInfo.T_UserInfo)
        End If

执行如图:


    这样的方法好像有点笨,可是我仅仅用了控件绑定的和控件直接查询的方式,差点儿没写什么代码,DataGridView控件本身的功能就非常强大,不用写代码,直接绑定项目数据源。直接加入查询就能够了。只是代码查询也是要学会的。。

。。嘿嘿。

    大家有什么好的方法能够教教我,悉心请教。学习中。

。。。。



在WinForm中,如果你想在DataGridView中使用下拉列表框,你可以通过监听DataGridView的CurrentCellChanged事件来实现。在事件处理程序中,你可以获取当前单元格所属的列,并判断是否是需要显示下拉列表的列。如果是,你可以获取当前单元格的位置和大小,并将下拉列表框的位置和大小设置为相同。然后,你可以将单元格的内容显示下拉列表框的当前项。最后,在下拉列表框的SelectedIndexChanged事件中,你可以将选择的项更新到DataGridView相应的单元格中。 以下是一个示例代码供参考: private void dataGridView1_CurrentCellChanged(object sender, EventArgs e) { DataGridViewColumn column = dataGridView1.CurrentCell.OwningColumn; if (column.Name.Equals("Column2")) // 如果是要显示下拉列表的列的话 { int columnIndex = dataGridView1.CurrentCell.ColumnIndex; int rowIndex = dataGridView1.CurrentCell.RowIndex; Rectangle rect = dataGridView1.GetCellDisplayRectangle(columnIndex, rowIndex, false); comboBox1.Left = rect.Left; comboBox1.Top = rect.Top; comboBox1.Width = rect.Width; comboBox1.Height = rect.Height; string consultingRoom = dataGridView1.Rows\[rowIndex\].Cells\[columnIndex\].Value.ToString(); int index = comboBox1.Items.IndexOf(consultingRoom); comboBox1.SelectedIndex = index; comboBox1.Visible = true; } else { comboBox1.Visible = false; } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (dataGridView1.CurrentCell != null) { dataGridView1.CurrentCell.Value = comboBox1.Items\[comboBox1.SelectedIndex\]; } } // 将下拉列表框加入到DataGridView的控件集合内,否则下拉列表框不会显示在你点击的单元格上 dataGridView1.Controls.Add(comboBox1); 请注意,这只是一个示例代码,你需要根据你的具体需求进行适当的修改和调整。 #### 引用[.reference_title] - *1* *2* *3* [Winform datagridview显示下拉框示例](https://blog.csdn.net/Pei_hua100/article/details/124492408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值