小弟刚学C#
  private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            using (SqlConnection con = new SqlConnection(@"Data Source =.\SQLEXPRESS;AttachDBFilename=C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\DB_DataBase.mdf;Integrated Security=True;
            User Instance=true;"))
            {                // string sql = "SELECT name FROM SysColumns WHERE SysColumns.id=object_id('" + comboBox1.Text + "')";
               
                //string sql="SELECT * FROM "+comboBox1.Text;
                string table=comboBox1.Text;
                string sql = string.Format("SELECT * FROM {0}",table);
                con.Open();
                SqlDataAdapter ada = new SqlDataAdapter(sql,con);
                DataSet ds = new DataSet();
                ada.Fill(ds,"table");
                dataGridView1.DataSource = ds.Tables[0];
               con.Close();
                
                  
            }
            
                                       
            }
提示说:对象名 'System.Data.DataRowView' 无效。
怎么改代码……

解决方案 »

  1.   

    请问你的comboBox1的内容是由数据可绑定的吗?实现了吗?
      

  2.   

    请问你的comboBox1的内容是由数据库绑定的吗?实现了吗?
      

  3.   

    SysColumns 这个是表名么,看起来挺怪的命名,有点像列名
      

  4.   

    COMBOBOX绑定表名成功了,下面的
    string table=comboBox1.Text;
    string sql = string.Format("SELECT * FROM {0}",table);
                    con.Open();
                    SqlDataAdapter ada = new SqlDataAdapter(sql,con);
                    DataSet ds = new DataSet();
                    ada.Fill(ds,"table");
                    dataGridView1.DataSource = ds.Tables[0];
                   con.Close();
    主要是这段代码执行SQL语句时,提示说:对象名 'System.Data.DataRowView' 无效。
      

  5.   

    你的数据库表名就是Table吗? 
    string sql = string.Format("SELECT * FROM {0}",table);很少见这样的写法;
    直接写string sql="select * from table" ;(table是要查询的表名)
    1.对象名 'System.Data.DataRowView' 无效。界面部分有该控件(DataGridView)没有,有的话检查ID是否和这里的一致
    2.检查表名
      

  6.   

    天知道,你的代码中都没有“System.Data.DataRowView”,显然错误不在你贴的代码中。
      

  7.   

    现在想完成的任务是,当选择COMBOBOX控件的项时,在数据库查找该项对应的表,并且显示表的视图,这应该怎么做?
      

  8.   

    先下断点 查查 string table=comboBox1.Text; 
    得到的 table 是什么值,值对不对。
    也许返回的是其他 数据库中没有的数据。
    一般comboBox 有 selectedText 还是 selectedValue 属性 试试看。然后 如果得到 table 有 数据 但是 后面查询 出错。
    那么 你试试 直接 将 table 替换 成 数据库中已有的表名 看看是否能读取数据。如果 select * from 表名 仍然 出错 那可能就是 连接字符 或者 打开方式不对了
      

  9.   

    主要是sql语句有错误,说是,from附近有语法错误
      

  10.   

    主要是sql语句有错误,说是,from附近有语法错误 
    ==>
    那你把 sql语句输出来,
    在查询分析器里执行看看,能不能成功
    在查询分析器里好找 sql 语句的错误
      

  11.   

    string sql = string.Format("SELECT * FROM {0}",table);这句加个断点跟踪下,不是一下子就知道了吗
      

  12.   

    你居然用了table的表明,为毛在后面又用ds.table[0]? 
      

  13.   

    你既然用了table的表名,为毛在后面又用ds.table[0]? 
      

  14.   

    难道不需要用DS.TABLES[0]将结果显示在GRIDVIEW中?ada.Fill(ds,"table")是填充数据集,不是表名是TABLE啊,表名没有指定,不一定是TABLE,而是COMBOBOX中的任意一项
      

  15.   

    你试试就知道了,table现在就是tables[0]的别名
      

  16.   

    看上面发的图,而且我的数据库里没有TABLE这个表名,怎么改
      

  17.   

    这个是datatset里的表,内存里的,不是你数据库的表