using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“siplace_kanbanDataSet1.kanbanTable”中。您可以根据需要移动或删除它。
            this.kanbanTableTableAdapter.Fill(this.siplace_kanbanDataSet1.kanbanTable);
            BindListBox1();
            //BindListBox2();
        }        //设定ListBox控件显示内容
        public void BindListBox1()
        {
            string sql1 = "select lId,dtTime from BOARD";
            string sql2 = "select dtTime from CompBlock";
            listBox1.DataSource = GetData1(sql1).Tables[0];
            listBox1.DisplayMember = "lId";
            listBox2.DataSource = GetData2(sql2).Tables[1];
            listBox2.DisplayMember = "dtTime";
        }        /*public void BindListBox2()
        {            
            string sql2 = "select dtTime from CompBlock";
            listBox2.DataSource = GetData2(sql2);
            listBox2.DisplayMember = "dtTime";
        }*/        private DataSet GetData1(string sql)
        {
            DataSet table1 = new DataSet();
            String connectionString =
                    "Data Source=SZNC4924;" + "Initial Catalog=OIS1;User ID=sa;Password=Siplace.1";
            SqlConnection conn = new SqlConnection(connectionString);
            SqlDataAdapter dataAdapter1 = new SqlDataAdapter(sql,conn);
            dataAdapter1.Fill(table1);
            return table1;
        }        private DataSet GetData2(string sql)
        {
            DataSet table2 = new DataSet();
            String connectionString =
                    "Data Source=SZNC4924;" + "Initial Catalog=OIS1;User ID=sa;Password=Siplace.1";
            SqlConnection conn = new SqlConnection(connectionString);
            SqlDataAdapter dataAdapter2 = new SqlDataAdapter(sql, conn);
            dataAdapter2.Fill(table2);
            return table2;
        }
    }}
结果listbox1有显示结果,可是listbox2没有  这是什么原因  怎么解决?

解决方案 »

  1.   

     //BindListBox2();
     /*public void BindListBox2()
            {            
                string sql2 = "select dtTime from CompBlock";
                listBox2.DataSource = GetData2(sql2);
                listBox2.DisplayMember = "dtTime";
            }*/
    你都把方法注释掉了,listbox2当然没有了。
      

  2.   

     public void BindListBox1()
             {
                 string sql1 = "select lId,dtTime from BOARD";
                 string sql2 = "select dtTime from CompBlock";
                 listBox1.DataSource =  GetData1(sql1).Tables[0];
                 listBox1.DisplayMember = "lId";
                 listBox2.DataSource = GetData2(sql2).Tables[0];
                 listBox2.DisplayMember = "dtTime";
             }
     那是我已经合并在BindListBox()中了啊,我如果把那个GetData1(sql1).Tables[0];GetData2(sql2).Tables[0];改为GetData1(sql1);GetData2(sql2);结果就会是这样
      

  3.   

     listBox2.DataSource = GetData2(sql2).Tables[0];
      

  4.   

    你顺便断点一下看看有没有读取出数据来,先确保有数据,还是不显示的话,我不记得listbox有没有刷新的方法了,刷新一下。
      

  5.   

    我之前都试过。不行的。我在想是不是因为是多个表的问题  如果listbox2与listBox1是从同一张表读出不同的列是可以的。可是不同的表就这样了。  而且我注释掉listBox1显示时  listBox2还是没显示  可是我直接在数据库中查找时是有数据的啊   这是怎么回事?
      

  6.   

    我之前都试过。不行的。我在想是不是因为是多个表的问题  如果listbox2与listBox1是从同一张表读出不同的列是可以的。可是不同的表就这样了。  而且我注释掉listBox1显示时  listBox2还是没显示  可是我直接在数据库中查找时是有数据的啊   这是怎么回事?那你单步过,GetData2(sql2).Tables[0]这句有数据吗?
    datatable dt = GetData2(sql2).Tables[0];
    看看dt有没有数据,有尝试刷新listbox
    listbox2.refresh();
      

  7.   

    ListBox2.Items.Add
    用这个方法
      

  8.   

    我之前都试过。不行的。我在想是不是因为是多个表的问题  如果listbox2与listBox1是从同一张表读出不同的列是可以的。可是不同的表就这样了。  而且我注释掉listBox1显示时  listBox2还是没显示  可是我直接在数据库中查找时是有数据的啊   这是怎么回事?那你单步过,GetData2(sql2).Tables[0]这句有数据吗?
    datatable dt = GetData2(sql2).Tables[0];
    看看dt有没有数据,有尝试刷新listbox
    listbox2.refresh();datatable dt = GetData2(sql2).Tables[0];
    这里设置了断点  显示是null的  这是为什么  在数据库里查找时是有值的啊
      

  9.   

    我之前都试过。不行的。我在想是不是因为是多个表的问题  如果listbox2与listBox1是从同一张表读出不同的列是可以的。可是不同的表就这样了。  而且我注释掉listBox1显示时  listBox2还是没显示  可是我直接在数据库中查找时是有数据的啊   这是怎么回事?那你单步过,GetData2(sql2).Tables[0]这句有数据吗?
    datatable dt = GetData2(sql2).Tables[0];
    看看dt有没有数据,有尝试刷新listbox
    listbox2.refresh();
    我加了两句
    DataTable da1 = GetData1(sql1).Tables[0];
    DataTable da = GetData2(sql2).Tables[0];
    分别设置断点时    da的dataSet显示如图  而da1正常
      

  10.   

    我之前都试过。不行的。我在想是不是因为是多个表的问题  如果listbox2与listBox1是从同一张表读出不同的列是可以的。可是不同的表就这样了。  而且我注释掉listBox1显示时  listBox2还是没显示  可是我直接在数据库中查找时是有数据的啊   这是怎么回事?那你单步过,GetData2(sql2).Tables[0]这句有数据吗?
    datatable dt = GetData2(sql2).Tables[0];
    看看dt有没有数据,有尝试刷新listbox
    listbox2.refresh();
    我加了两句
    DataTable da1 = GetData1(sql1).Tables[0];
    DataTable da = GetData2(sql2).Tables[0];
    分别设置断点时    da的dataSet显示如图  而da1正常
      

  11.   

    很久不写datatable了,记得以前也遇到过,但忘了原因,网上说改设置,你可以试试,但建议先把GetData2和GetData1合并,我没看错的话他们是一样的功能,传sql进去就好了,自己用代码把结果输出到控制平台看看。
      

  12.   

    怎么改呀?还奇怪的  现在listbox只有绑定表“BOARD”才会运行正确  换成同一数据库其他任何表都出不来结果  这是怎么回事啊  
      

  13.   

    怎么改呀?还奇怪的  现在listbox只有绑定表“BOARD”才会运行正确  换成同一数据库其他任何表都出不来结果  这是怎么回事啊  问题解决了  嘿嘿  不过运行时间很慢呢  这要怎么解决呢