C# 查询mysql数据库中的表

conn=newMySqlConnection();;//实例化数据库连接(instanced)conn=newMySqlConnection("DataSource=l... conn = new MySqlConnection(); ; // 实例化数据库连接(instanced)
conn = new MySqlConnection("DataSource=localhost;Database=test;Username=root;Password="); // 配置连接(configured)
conn.Open();
string tablename = "教材";
myadp = new MySqlDataAdapter("select * from tablename", conn);
ds = new DataSet(); // 填充和绑定数据
myadp.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];

代码在 myadp.Fill(ds, tablename); 这一行报错,说:Table 'test.tablename' doesn't exist

但是如果把
myadp = new MySqlDataAdapter("select * from tablename", conn);
写成
myadp = new MySqlDataAdapter("select * from 教材", conn);
就完全没有问题。

请问代码怎么改才能运行正确呢?
展开
 我来答
好几只小萝莉
推荐于2017-10-10 · TA获得超过398个赞
知道小有建树答主
回答量:488
采纳率:100%
帮助的人:166万
展开全部
select * from 【表名】
说明你名为[test]的数据库中没有名为[tablename]的表。
查询数据库[test]中的表名用这句:
SELECT table_name FROM information_schema.tables WHERE table_schema='test'
更多追问追答
追问
我没把问题说清楚。
我的mysql的数据库中有个名为“教材”的表。还有一个名为“参考书”的表。

我想利用一个combox控件来选择我是从“教材”表中查询,还是从“参考书”表中查询。
但是在查找数据库代码部分调试的时候我就遇到问题了。用变量表示的表名 myadp = new MySqlDataAdapter("select * from tablename", conn);这个语句不识别。
追答
你的sql语句是:select * from tablename
里面的tablename不是一个表名,就这个意思。
Table 'test.tablename' doesn't exist

表 ‘test.tablename’不存在,
因为你test里面只有‘test.教材’表和‘test.参考书’表或者你还有‘test.借阅记录’表等。
但就是没有‘test.tablename’!

你想要的大概可以这么写:
myadp = new MySqlDataAdapter("select * from "+combobox.Text, conn);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syht2000
高粉答主

2016-08-18 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
你的表名是什么,这里就应该是什么,当然不能随便乱写的,后面之所以正常就是因为你有个表叫做“教材”,不太清楚你想做什么,建议安装一个navicat for mysql中文版,进数据库看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hd520superman
2017-10-09
知道答主
回答量:5
采纳率:0%
帮助的人:4347
展开全部
你把数据库表中的属性换一下,然后再来试下,应该就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式