一度以下のようなコードで DataTable を作って、それを CSV ファイルにするようにしてはいかがですか?
テキストボックスのユーザー入力から接続文字列やクエリを組み立てるのは次のステップでやるようにして、まずは固定してやってみることをお勧めします。
public DataTable CreateDataTable()
{
string connString = "接続文字列";
string query = "SELECT * FROM Table";
using (MySqlConnection connection = new MySqlConnection(connString))
{
MySqlCommand command = new MySqlCommand(query, connection);
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = command;
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds.Tables[0];
}
}
まずはここまで実装してみて、CreateDataTable メソッドの戻り値に DataTable が取得できるかどうかを調べて下さい。
その上で、DataTable から CSV ファイルを生成するコードを追加するというように順を追ってやっていくことをお勧めします。
DataTable から CSV ファイルを作る方法は、CSV DataTable をキーワードにググると多々ヒットしますのでご自分で調べてください。
【2017/7/6 11:24 追記】
2017/07/06 11:08 の私のコメントに「自分の PC で mysqldbexport を使ってどのようなバックアップ用のスクリプトが生成されるかの例を回答欄に書いておきます」と書きましたが、それを以下に書いておきます。
既存の test という名前のデータベースのバックアップを取るため、コマンドラインから、
mysqldbexport --server=root:********@localhost --export=both test > e:\test.sql
と入力すると(******** はパスワード)、e ドライブに test.sql という名前で以下の内容のファイルが生成されます。
# WARNING: Using a password on the command line interface can be insecure.
# Source on localhost: ... connected.
# Exporting metadata from `test`
DROP DATABASE IF EXISTS `test`;
CREATE DATABASE `test`;
USE `test`;
# TABLE: `test`.`employees`
CREATE TABLE `employees` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(50) NOT NULL,
`Title` varchar(50) NOT NULL,
`Description` varchar(250) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# TABLE: `test`.`products`
CREATE TABLE `products` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`ProductName` varchar(50) NOT NULL,
`Price` decimal(10,0) NOT NULL,
`Remarks` varchar(250) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
# TABLE: `test`.`テストテーブル`
CREATE TABLE `テストテーブル` (
`id` int(11) NOT NULL,
`name` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#...done.
USE `test`;
# Exporting data from `test`
# Data for table `test`.`employees`:
# Data for table `test`.`products`:
INSERT INTO `test`.`products` VALUES (1, 'Orange', 100, 'Califolnia');
INSERT INTO `test`.`products` VALUES (2, 'Apple', 150, 'From Japan');
INSERT INTO `test`.`products` VALUES (3, 'Banana', 300, 'Taiwan');
INSERT INTO `test`.`products` VALUES (4, 'Grape', 400, 'France');
INSERT INTO `test`.`products` VALUES (7, 'トマト', 500, '日本');
INSERT INTO `test`.`products` VALUES (9, 'スイカ', 6, '神奈川');
INSERT INTO `test`.`products` VALUES (10, 'メロン', 1000, '夕張');
INSERT INTO `test`.`products` VALUES (14, 'イチゴ', 200, 'アメリカ');
INSERT INTO `test`.`products` VALUES (15, 'サツマイモ', 500, '鹿児島');
# Data for table `test`.`テストテーブル`:
INSERT INTO `test`.`テストテーブル` VALUES (1, 'リンゴ');
INSERT INTO `test`.`テストテーブル` VALUES (2, 'バナナ');
INSERT INTO `test`.`テストテーブル` VALUES (3, 'ミカン');
INSERT INTO `test`.`テストテーブル` VALUES (4, 'メロン');
#...done.