日期:2014-05-16  浏览次数:20466 次

C#listbox两级联动问题
        private void listBox1_MouseClick(object sender, MouseEventArgs e)
        {
            string WXR = Application.StartupPath + "\\input_report.mdb";//定义查找数据库的路径
            string conStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + WXR;
            OleDbConnection con = new OleDbConnection(conStr);
            con.Open();
            string cmdStr = "select * from ACARS where ACID='" + this.listBox1.Items + "'";
            OleDbCommand Acmd = new OleDbCommand(cmdStr, con);
            OleDbDataReader drNew = Acmd.ExecuteReader();
            switch (listBox1.Text)
            {
                case "ACID":

                    listBox2.Items.Clear();
                    listBox2.Items.Add("FLT");
                    listBox2.Items.Add(" ");
                    listBox2.Items.Add("[time]");
                    break;
            }

            con.Close();

设置断点单步执行后发现switch语句进不去,直接跳到了con.close();要实现的功能是listbox1中的条目选中一项后listbox2联动显示listbox1中选中数据在Access表格中对应另外两项数据。
新手菜鸟  求助求助!!!!
------解决方案--------------------
你看看listBox1.Text是什么呢,你肯定是引起了页面的重新load,listBox1.Text清空了,在pageload事件中记得加上判断
if (!ispostback)
------解决方案--------------------
很明显 不符合条件所以进不去。。
这个你可以将case 的值 写成跟那个数据值一样
------解决方案--------------------
引用:
Quote: 引用:

你看看listBox1.Text是什么呢,你肯定是引起了页面的重新load,listBox1.Text清空了,在pageload事件中记得加上判断
if (!ispostback)
嗯嗯 这个好了 但是有个问题是 listbox2里面需要显示的内容是数据库表格里面两列的内容,读出来之后直接显示在listbox2里面显示成了两行,我想要消除换行 用空格区分  这个应该怎么操作啊?比如:
现在是这样显示的
CA1534
2010-10- 3
我想让它显示成:CA1534  2010-10-3


那你直接写代码  string val= "列1的值"+"空格"+"列2的值"
 listbox2.add(val)  不就可以了?