C# 查询mysql数据库中的表

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);
就完全没有问题。

请问代码怎么改才能运行正确呢?

第1个回答  推荐于2017-10-10
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);

追问

它在 myadp.Fill(ds); 报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from教材' at line 1 数据表第一栏类型varchar,字符集utf32

追答

from 空格 表名
看上去貌似没有加上空格啊。

本回答被提问者和网友采纳
第2个回答  2016-08-18
你的表名是什么,这里就应该是什么,当然不能随便乱写的,后面之所以正常就是因为你有个表叫做“教材”,不太清楚你想做什么,建议安装一个navicat for mysql中文版,进数据库看看。
第3个回答  2017-10-09
你把数据库表中的属性换一下,然后再来试下,应该就可以了。

初学C#,用C#查询MySql数据库中的表,没有显示任何数据,求指导
MySqlDataReader 是一个返回的对象,他只是指向下一条信息,用while循环,读取,while(mdr.Read()){写上代码,Console.WriterLine(mdr["字段"]);}

C# 查询mysql数据库中的表
说明你名为[test]的数据库中没有名为[tablename]的表。查询数据库[test]中的表名用这句:SELECT table_name FROM information_schema.tables WHERE table_schema='test'

C#使用SqlSugar操作MySQL数据库实现简单的增删改查
查询功能可检索表中所有数据,以及根据特定条件、单条记录或字段进行查询。修改功能以修改特定数据为例,如修改id=3的学生的home地址。修改后,数据库中显示已更新。删除功能可实现根据条件或主键数组删除数据。条件删除后,数据库中显示已删除记录。本文总结了使用C#和SqlSugar操作MySQL数据库实现基本的增删改...

C#中查询数据库中记录个数并显示。
private void count(object sender, EventArgs e){ string str1 = "select * from 表名 where 条件 ";\/\/读取整张表 MySqlConnection coon = MySQL.getMySqlCon();\/\/连接数据库,调方法 MySqlCommand mySqlCommand1 = MySQL.getSqlCommand(str1, coon);coon.Open();int record1 = MySQL.getResu...

C#怎么添加记录到MySQL数据库中的表???请看详细
string query = string.Format("insert into my (userID,Password,Phone,Name,Sex,Age) values ({0},'{1}','{2}','{3}','{4}',{5})", 1, "000000", "868686", "name",1, 25);\/\/ 1, "000000", "868686", "name",1, 25 分别换成你对应的TextBox的值,可要保证数据能...

怎样将数据库中的表用C#打印出来
我用MySQL操作 将数据库的表 放在listview中显示出来 下面是3个函数 一个是连接mysql, 一个是查询显示表的 private void bOpen_Click(object sender, EventArgs e){ try { string newysql= string.Format("Database=test;Data Source=127.0.0.1;UserId={0};"+ "Password={1};pooling=...

C#查询数据库所有表名,并显示到ListView
查询数据库中表名的语句为 SELECT name FROM sysobjects WHERE (xtype = 'U')sysobjects 这是系统表的表名 再有DbNameDs更本没有添加数据。

c# 查询mysql 的数据, id 怎么得到啊,,是int类型的
因为一般表里面ID都是索引和自增长标示,Sqlserver中 Identity的类型是int ,你写int id = (int) reader["id"]肯定没问题。但是Mysql中自增长是AUTO_INCREMENT, 他的类型是long 所以你要写long id = (long)reader["id"];或者 var id = Convert.ToInt64(reader["id"]);

在c#中怎么遍历MySQL数据库中的数据 大侠们能给个实例最好
太长了,使用DataTable吧,从mysql中取数据不讲了,就把遍历写一下吧 for(int i;i<datatable.Rows.Count;i++){ string id = datatable.Rows[i][0].ToString();……} 反正不知道你的题目意思,就这么写一下

c#能不能连接mysql 在一个表中查询然后把查询到的写入另一张表中
可以从一个表中复制所有的列插入到另一个已存在的表中:INSERT INTO table2 SELECT * FROM table1;或者我们可以只复制希望的列插入到另一个已存在的表中:INSERT INTO table2 (column_name(s))SELECT column_name(s)FROM table1;

相似回答