这个学期新学C#,还不是太懂
我添加了一个toolstripcombobox控件,有3个选项想显示选项对应的表格,写了如下代码private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string tabelName = toolStripComboBox1.Text;
            string connectionString = Properties.Settings.Default.DBConnectionString;
            SqlConnection conn = new SqlConnection(connectionString);
            adapter = new SqlDataAdapter("select * from " + tabelName, conn);
            adapter.Fill(table);
            dataGridView1.DataSource = table;
        }
不知道为什么点COMBOBOX值改变后datagridview始终没东西显示,求解~~

解决方案 »

  1.   

    复制漏了一行
    table= new DataTable();
      

  2.   

    你在这一句设置断点看看connectionString 变量的连接字符串是否正确?
    string connectionString = Properties.Settings.Default.DBConnectionString;如果正确,将sql语句放在数据库的查询分析器中执行以下,有没有数据返回?
      

  3.   

    dataGridView1.DataSource = table;
    dataGridView1.Bind();
      

  4.   

    你是用的wINFORM还是WEB,web的就加dataGridView1.DataBind();
    winform不要也可以显示的
    select * from " + tabelName这句话放到SQL2005里面执行下,看有结果没有,tablename换成Combox显示的值
      

  5.   

    这是DataGridView不是GridView不需要bind。
    其他地方看着没问题,下边这段代码确实没用过。
    string connectionString = Properties.Settings.Default.DBConnectionString;
    是不是COMBOBOX的事件没有触发?或者打个断点看下table里面有值没。
      

  6.   

    adapter.Fill(table);//table这个类型似乎是DataSet吧?把table申明贴一下
      

  7.   

    自己查 一下   锻炼一下 查错能力 也不错   可以 把所有 显示表内容 所需要的信息用MESSAGE 的形式 跳出来 自己看看
      

  8.   

    Winform 不需要Bind()就可以的
      

  9.   

    table里面是没值。。NULL的。该怎么搞
      

  10.   

    请看12楼回复,你的填充应该是dataSet才对
    源码应该这样写
    DataSet ds = new DataSet();
    adapter = new SqlDataAdapter("select * from " + tabelName, conn);
      adapter.Fill(ds);
      dataGridView1.DataSource = ds.Tables[0];
    //再看看
      

  11.   


    private void Form1_Load(object sender, EventArgs e)
            {
                DataTable table = new DataTable();
                SqlDataAdapter adapter = new SqlDataAdapter();
                string connectionString = "server=.;database=test;uid=sa;pwd=sql";
                SqlConnection conn = new SqlConnection(connectionString);
                adapter = new SqlDataAdapter("select * from " + "test", conn);
                adapter.Fill(table);
                dataGridView1.DataSource = table;
            }
    string connectionString = Properties.Settings.Default.DBConnectionString;
    这段代码我这点不出来DBConnectionString不知道是否有效,但我换成手写可以得出值。
    你把连接字符串写一下,只要触发了事件应该没问题的。
      

  12.   

    在查询一张表的时候DataTable完全可以。
      

  13.   

    Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True
    这个?
      

  14.   

    我是在一个toolstrip里的combobox的SelectIndexChange事件里写的,想做成选择表的效果
      

  15.   

    恩,改一下!
    string connectionString = "server=.;database=test;uid=sa;pwd=sql"; server和uid不用改,把database改成你的数据库,pwd改成你数据库sa的密码
      

  16.   

    SqlConnection conn = new SqlConnection(connectionString);
      adapter = new SqlDataAdapter("select * from " + tabelName, conn);
    conn.open();
      adapter.Fill(table);
      

  17.   

    SelectIndexChange这个事件?
    晕了,找了那么长时间。。
    那就是了,你没对index进行判断执行相应的查询吧。。
      

  18.   

    private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
      {
    MessageBox.Show("aaa");//测试是否事件每次都会调用
    this.dataGridView1.Rows.Clear();//先清空数据
    table =new DataTable();
      string tabelName = toolStripComboBox1.Text;
      string connectionString = Properties.Settings.Default.DBConnectionString;
      SqlConnection conn = new SqlConnection(connectionString);
      adapter = new SqlDataAdapter("select * from " + tabelName, conn);  adapter.Fill(table);
    MessageBox.Show(table.Rows.Count().toString());//判断是否从数据库里取出数据.
      dataGridView1.DataSource = table;  }
      

  19.   

     WinForm 里没有Bind,这个方法