C#&数据库 comboBox中的下拉选项的设置

分两种,固定的和从数据库中动态读取的

先说固定的,大致如下,combobox3是包含这些下拉菜单的那个组件

            comboBox3.Items.Clear();//先清空组件中的选项
            comboBox3.Items.Add("荤菜");//这样combox3中的下拉菜单选项就是荤菜,素菜,汤粥,面食和套餐,五个选项
            comboBox3.Items.Add("素菜");
            comboBox3.Items.Add("汤粥");
            comboBox3.Items.Add("面食");
            comboBox3.Items.Add("套餐");

 

下面这种是从数据库中动态读取的,因为我做的这个程序两个下拉菜单是有关联的所以看起来会有点复杂

            string connString = @"Data Source = .;Initial Catalog = Restaurant;Integrated Security=True";//连数据库
            string sql="";//不这样写下面comm实例化括号里会报错
            if (comboBox3.Text.Trim() == "荤菜")
            {
                comboBox4.Items.Clear();//一定要先清空啊,不然每次的都积在一起,下拉菜单越来越长
                sql = string.Format("select Bname from B");从表中找到菜品的名字所在的列
            }
            if (comboBox3.Text.Trim() == "素菜")
            {
                comboBox4.Items.Clear();
                sql = string.Format("select Cname from C");
            }
            if (comboBox3.Text.Trim() == "汤粥")
            {
                comboBox4.Items.Clear();
                sql = string.Format("select Dname from D");
            }
            if (comboBox3.Text.Trim() == "面食")
            {
                comboBox4.Items.Clear();
                sql = string.Format("select Aname from A");
            }
            if (comboBox3.Text.Trim() == "套餐")
            {
                comboBox4.Items.Clear();
                sql = string.Format("select Pid from ABCD");
            }
            SqlConnection conn = new SqlConnection(connString);
            try
            {
                conn.Open();//这段往下是重点,可直接复制
                SqlCommand comm = new SqlCommand(sql, conn);
                SqlDataReader dr = comm.ExecuteReader();
                while (dr.Read())
                {
                    comboBox4.Items.Add(dr[0]);//combobox4是显示下拉菜单的组件,dr是读数据的对象,dr[0]是他读到的第一列,当然这种写法也只有一列
                }
                dr.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "操作数据库出错", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            finally
            {
                conn.Close();
            }

十分感谢朱大哥教我这种方法,记下来,不然会忘- -

今天又是满怀困惑写bug的一天啊- -

有问题敬请指正呀~

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值