C#中checkedlistbox的用法

我有两个checkedlistbox,其中的选择项分别从表1和表2中读出字段值f1、f2得到,现在我相每次从box1和box2中选一项或多项,然后把值填充到表3中,填充时... 我有两个checkedlistbox,其中的选择项分别从表1和表2中读出字段值f1、f2得到,现在我相每次从box1和box2中选一项或多项,然后把值填充到表3中,填充时,不仅只是f1和f2,还有表2中f2字段值对应的一行的其它字段,请问如何实现?
表1
f1值:a1 a2 a3

表2
f2 f3 f4
b1 c1 d1
b2 c2 d2
b3 c3 d3

box1中显示a1 a2 a3
box2中显示b1 b2 b3
当选中a1、a2和b1、b3时,向表3中写入内容为:
a1 b1 c1 d1
a1 b3 c3 d3
a2 b1 c1 d1
a2 b3 c3 d3

表3结构已建立:f1,f2,f3,f4
展开
 我来答
小道不是和尚
推荐于2016-10-03 · TA获得超过171个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:160万
展开全部

不知道你的表示listview还是dategridview


这个逻辑不难理解吧


循环获取box1中的选择项,对每项循环 添加 box2的选择内容

(当然是根据box2的选择值查询表2得到的详细值)

然后每次获得一行完整的表3项,就添加到表3



下面以listview 为例

            listView3.Items.Clear();
            for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
            {//获得表1的选择值
                for (int j = 0; j < checkedListBox2.CheckedItems.Count; j++)
                {//获得表2的选择值
                
                    //新的表3的行
                    ListViewItem lvi = new ListViewItem();
                    lvi.Text = checkedListBox1.CheckedItems[i].ToString();
                    for (int k = 0; k < listView2.Items.Count; k++)
                    {//获得完整的表2 的值,并添加到ListViewItem
                        if (listView2.Items[k].Text == lvi.Text)
                        {
                            lvi.SubItems.Add(listView2.Items[k].SubItems[0].Text);
                            lvi.SubItems.Add(listView2.Items[k].SubItems[1].Text);
                            lvi.SubItems.Add(listView2.Items[k].SubItems[2].Text);
                            listView3.Items.Add(lvi);
                            break;//这里是跳出 int k = 0 这个循环
                        }
                    }
                }
            }
追问
谢谢,不过好象不行,我的两个checkedlistbox的内容都是从数据库(MS SQL)表中的字段值,最后还要写入到数据库表3中,我比较迷的是如何通过checkedlist2中选择的值,找出表2中的一行,然后写入表3中,用SQL查询出的一行中各列值如何表示
追答
SQL查询出来的直接结果是datatable型,那就类似

把上面listView2.Items[k].SubItems[0]

这样的改成datatable2.Rows[k][0]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式