mysql> select concat('drop table ', table_name, ';') from information_schema.tables where table_name like 'test%'; +------------------------------------------------------+ | concat('drop table ', table_name, ';') | +------------------------------------------------------+ | drop table test2017012113945843221lisidenglurizhi; | | drop table test2017012113945843221lisihaoyouliebiao; | | drop table test2017012113945843221lisijiarudequn; | | drop table test2017012113945843221lisizhucexinxi; | +------------------------------------------------------+
上面是在终端执行的结果,只能是复制上面的执行结果在执行才能删除表格,
是不是在c#中执行的时候能获得这个返回结果集呢? 是的!
调用mysqlhelper类中的方法:
public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
返回一个 MySqlDataReader 这样一个类型,对该类型遍历
string sql_drop_list = "select concat('drop table ', table_name, ';') from information_schema.tables where table_name like 'test%';"; MySqlDataReader reader = Mysql.MySqlHelper.ExecuteReader(Mysql.MySqlHelper.Conn, CommandType.Text, sql_drop_list); while (reader.Read()) { string sql_drop = ""; sql_drop = reader[0].ToString(); Mysql.MySqlHelper.ExecuteNonQuery(Mysql.MySqlHelper.Conn, CommandType.Text, sql_drop); }
下面的内容转载自:http://www.itjsxx.com/csharp/MySqlDataReader_csharp.html
注意,这里的dr[0]代表当前读取到的行的第一列,第二列则是dr[1],后面的以此类推
MySqlDataReader的read方法的作用,是使 SqlDataReader 前进到下一条记录。
MySqlDataReader 的默认位置在第一条记录前面。 因此,必须调用 Read 来开始访问任何数据。
还有值得一提的是一个数据库连接一次只能打开一个SqlDataReader,如果要打开另一个reader,必须先关闭第一个
否则将会报错:
There is already an open DataReader associated with this Connection which must be closed first.
谢谢,如果大家有更好更优的方法可以分享,指点一些, 愿上帝赐福与你!