如何从数据库值使复选框为true [英] How to make checkbox true from database value

查看:71
本文介绍了如何从数据库值使复选框为true的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个Windows应用程序,我正在从数据库中检索数据(项目)到表单。

在表格中会有很多复选框列表会动态显示列出项目。我在获取数据(项目)后使用按钮单击事件从数据库中获取数据。

如果项目存在于复选框列表中(在许多<$ c内) $ c>复选框已创建)然后勾选正确的复选框。

我用下面的代码来完成这个但是无法完成任务[注意:我试过 datagridview 它看起来很好,但复选框列表中的问题]

这里ch11是复选框列表名称。



从数据库中我检索的价值如

It is a windows application, I am retrieving data (items) from database into form.
In the form many checkboxlist will appear dynamically to list out the items. I used button click event to fetch data from database after fetching data (items).
If items exists in the checkboxlist (inside many checkboxes are created) then correct check box should get ticked.
I used below coding to finish this but unable to achieve the task [note: I tried in datagridview its appearing fine, but problem in checkboxlist]
Here ch11 is a checkboxlist name.

From the database I am retrieving valued like

menugroupid menuitems
1            33,
1            55,



请帮帮我。


please help me out.,

I have created checkboxlist dynamically using below coding
NOte:Here Dhal is a groupbox name.

  CheckedListBox ch1 = new CheckedListBox();


 public void menu_items_in_groupbox()
        {            
            try
            {
                gn.cnopen();
                string fetch_group_name = "select group_id,group_name,max_items from menu_group";
                SqlCommand cmd = new SqlCommand(fetch_group_name, gn.cn());
                DataTable dt = new DataTable();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);
		 if (dt.Rows[j]["group_name"].ToString() == "dhal")
                        {
                             max2 = Convert.ToInt32(dt.Rows[j]["max_items"]);
                            dhalitems.Text = "Any"+max2.ToString();
                            group2 = Convert.ToInt32(dt.Rows[j]["group_id"]); 

                            string menu_items1 = "select itemid,item_name from menu_items where group_id=";
                            menu_items1 = menu_items1 + "(select group_id from menu_group where group_name='dhal')";
                            DataTable fill_menus1 = new DataTable();
                            SqlDataAdapter get_menus1 = new SqlDataAdapter(menu_items1, gn.cn());

                            get_menus1.Fill(fill_menus1);
                            int x_axis = 12, y_axis = 34;

                            for (int k = 0; k <= fill_menus1.Rows.Count - 1; k++)
                            {

                                ListItem li1 = new ListItem();
                                li1.Text = fill_menus1.Rows[k]["item_name"].ToString();
                                li1.Value = fill_menus1.Rows[k]["itemid"].ToString();
                                ch1.Items.Add(li1);
                                ch1.Location = new System.Drawing.Point(x_axis, y_axis);
                                x_axis += 10;
                                y_axis += 10;
                            }
                            Dhal.Controls.Add(ch1);
                        }
		}
	}




Below code to retreive values from database.

public void load_breakfastitems_toedit()
        {
            try
            {
                gn.cnopen();
                string fetch_br_items = "select menu_items_id,menu_group_id from MENU_ITEMS_CHOOSED_HALLBOOKED_CUSTOMERS";
                fetch_br_items = fetch_br_items + " where menu_id=1 and hall_booked_id=" + mainhall_id + "";
                cmd = new SqlCommand(fetch_br_items, gn.cn());
                DataTable getdata = new DataTable();

                SqlDataAdapter filldata = new SqlDataAdapter(cmd);
                filldata.Fill(getdata);

                if (getdata.Rows.Count > 0)
                {
                    dataGridView1.DataSource = getdata;                 

                    DataTable dt1 = new DataTable();
                    DataColumn cd = new DataColumn("menu_group_id");
                    DataColumn menuitem = new DataColumn("menu_items_id");
                    menuitem.DataType = typeof(string);

                    cd.DataType = typeof(int);
                    dt1.Columns.Add(cd);
                    dt1.Columns.Add(menuitem);
                    DataRow[] dr;

                    dr = getdata.Select("menu_group_id=" + 1 + "");
                    foreach (DataRow temp in dr)
                    {
                        dt1.ImportRow(temp);
                    }
                  
                    string var = dt1.Rows[0]["menu_items_id"].ToString();
                    string[] array = var.Split(',');

                    
                    foreach (ListItem item in this.ch11.Items)
                    {
                        foreach (string s in array)
                        {
                            if (item.Value == s)
                            {
                                item.Selected = true;
                                                              
                            }
                        }                      
                    }                  
                }
            }
            catch (SqlException err)
            {
                MessageBox.Show(err.Message);
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            load_breakfastitems_toedit();
        }

推荐答案

for (int j = 0; j < checkedListBox1.Items.Count; j++)
     {
       foreach (DataRow d in dt.Rows)
          {
            if (checkedListBox1.Items[j].ToString() == d[0].ToString())
                {
                   checkedListBox1.SetItemChecked(j, true);
                }
         }





可能对你有所帮助



may be it helps you


这篇关于如何从数据库值使复选框为true的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆