一个简单的C#代码

balinor 2013-03-25 10:35:26
小弟刚学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' 无效。
怎么改代码……
...全文
458 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
shawn_yang 2013-03-28
  • 打赏
  • 举报
回复
这个是datatset里的表,内存里的,不是你数据库的表
balinor 2013-03-28
  • 打赏
  • 举报
回复
引用 21 楼 shawn_yang 的回复:
引用 20 楼 u010023158 的回复:引用 18 楼 shawn_yang 的回复:你既然用了table的表名,为毛在后面又用ds.table[0]? 难道不需要用DS.TABLES[0]将结果显示在GRIDVIEW中?ada.Fill(ds,"table")是填充数据集,不是表名是TABLE啊,表名没有指定,不一定是TABLE,而是COMBOBOX中的任意一项……
看上面发的图,而且我的数据库里没有TABLE这个表名,怎么改
shawn_yang 2013-03-28
  • 打赏
  • 举报
回复
引用 20 楼 u010023158 的回复:
引用 18 楼 shawn_yang 的回复:你既然用了table的表名,为毛在后面又用ds.table[0]? 难道不需要用DS.TABLES[0]将结果显示在GRIDVIEW中?ada.Fill(ds,"table")是填充数据集,不是表名是TABLE啊,表名没有指定,不一定是TABLE,而是COMBOBOX中的任意一项
你试试就知道了,table现在就是tables[0]的别名
balinor 2013-03-28
  • 打赏
  • 举报
回复
引用 18 楼 shawn_yang 的回复:
你既然用了table的表名,为毛在后面又用ds.table[0]?
难道不需要用DS.TABLES[0]将结果显示在GRIDVIEW中?ada.Fill(ds,"table")是填充数据集,不是表名是TABLE啊,表名没有指定,不一定是TABLE,而是COMBOBOX中的任意一项
shawn_yang 2013-03-28
  • 打赏
  • 举报
回复
你既然用了table的表名,为毛在后面又用ds.table[0]?
shawn_yang 2013-03-28
  • 打赏
  • 举报
回复
你居然用了table的表明,为毛在后面又用ds.table[0]?
balinor 2013-03-28
  • 打赏
  • 举报
回复

但是再继续执行的时候,是可执行的,而且结果是对的……
balinor 2013-03-28
  • 打赏
  • 举报
回复

看下图,这是改后的语句,显示出来的是这个……
dl_newpage 2013-03-28
  • 打赏
  • 举报
回复
你是通过用户在文本框中输入的表名进行查询吧,表名输入的对吗,显示视图?,所给代码中有这样的功能?是不是其它窗体有问题啊?看一个错误提示的具体位置吧
iceMung 2013-03-28
  • 打赏
  • 举报
回复
string sql = string.Format("SELECT * FROM {0}",table); 这句加个断点跟踪下,不是一下子就知道了吗
csdn_风中雪狼 2013-03-28
  • 打赏
  • 举报
回复
主要是sql语句有错误,说是,from附近有语法错误
==>
那你把 sql语句输出来,
在查询分析器里执行看看,能不能成功
在查询分析器里好找 sql 语句的错误
balinor 2013-03-28
  • 打赏
  • 举报
回复
主要是sql语句有错误,说是,from附近有语法错误
菜鸟之极 2013-03-27
  • 打赏
  • 举报
回复
貌似你的代码没有问题啊,错误就在这个地方报么
balinor 2013-03-27
  • 打赏
  • 举报
回复
现在想完成的任务是,当选择COMBOBOX控件的项时,在数据库查找该项对应的表,并且显示表的视图,这应该怎么做?
pjy612 2013-03-27
  • 打赏
  • 举报
回复
先下断点 查查 string table=comboBox1.Text; 得到的 table 是什么值,值对不对。 也许返回的是其他 数据库中没有的数据。 一般comboBox 有 selectedText 还是 selectedValue 属性 试试看。 然后 如果得到 table 有 数据 但是 后面查询 出错。 那么 你试试 直接 将 table 替换 成 数据库中已有的表名 看看是否能读取数据。 如果 select * from 表名 仍然 出错 那可能就是 连接字符 或者 打开方式不对了。。。
threenewbee 2013-03-26
  • 打赏
  • 举报
回复
天知道,你的代码中都没有“System.Data.DataRowView”,显然错误不在你贴的代码中。
yongbuyanqi88888 2013-03-26
  • 打赏
  • 举报
回复
你的数据库表名就是Table吗? string sql = string.Format("SELECT * FROM {0}",table);很少见这样的写法; 直接写string sql="select * from table" ;(table是要查询的表名) 1.对象名 'System.Data.DataRowView' 无效。界面部分有该控件(DataGridView)没有,有的话检查ID是否和这里的一致 2.检查表名
Thr21ough 2013-03-25
  • 打赏
  • 举报
回复
SysColumns 这个是表名么,看起来挺怪的命名,有点像列名
李婷婷2050 2013-03-25
  • 打赏
  • 举报
回复
请问你的comboBox1的内容是由数据库绑定的吗?实现了吗?
李婷婷2050 2013-03-25
  • 打赏
  • 举报
回复
请问你的comboBox1的内容是由数据可绑定的吗?实现了吗?
加载更多回复(2)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧