C#批量删除Mysql中相同前缀的表格

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.


谢谢,如果大家有更好更优的方法可以分享,指点一些, 愿上帝赐福与你!
posted @ 2017-02-08 15:58  仆人  阅读(742)  评论(0编辑  收藏  举报