1


0

C#を使用してmysqlデータベースからテーブルをエクスポート/ダウンロードする方法は?

phpmyadminでできるように、テーブルをmysqlデータベースからtxtまたはcsvファイルにエクスポートしたい。 現在、以下のコードを使用していますが、プログラムが数時間実行された後、「ストリームを超えて読み込もうとしました」エラーがスローされます。

MySqlConnection connection = new MySqlConnection(MyConString);
            MySqlCommand command = connection.CreateCommand();
            connection.Open();
            command.CommandText = "SELECT * FROM mytable";
            MySqlDataReader result = command.ExecuteReader();
                if (result != null)
                    while (result.Read())
                    {
                        string thisrow = "";
                        for (int i = 0; i < result.FieldCount; i++)
                            thisrow += result.GetValue(i).ToString() + ",";
                        pass = Regex.Replace(thisrow, @"\W*", "");
                        if (!hshTable.ContainsKey(pass)) hshTable.Add(pass, pass);
                    }
            connection.Close();

`myquerystring =" LOAD DATA LOCAL INFILE 'C:/mysqltable.txt' INTO TABLE mytable FIELDS TERMINATED BY '、' LINES TERMINATED BY '\ n' ";;のようなコマンドがあります

ファイルをデータベースにロードする代わりに、テーブルをダウンロードしますか?

わかった

MySqlConnection connection = new MySqlConnection(MyConString);
        MySqlCommand command = connection.CreateCommand();
        connection.Open();
             myquerystring = "SELECT * INTO OUTFILE 'E:/mysqldump.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM mytable";
                command.CommandText = myquerystring;
                command.ExecuteNonQuery();

しかし、サーバーIPがMyConStringで指定されているにもかかわらず、myipがサーバーではなく実際に私のIPである場合、「ユーザー 'admin' @ 'myip’のアクセス拒否(パスワード:YES)」エラーが表示されます。

2 Answer


1


これを試すことができます:

SELECT * INTO OUTFILE 't:/mysqldump.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM mytable

また、MySqlプロセスの所有者には、指定された場所に書き込む権限が必要であることを忘れないでください。


0


こんにちは、数年前にxslを使用して同様のことを行いました。 Webサービスからxmlを受け取り、それをcsvファイルに変換して、データをいくつかのテーブルに挿入するバッチに渡しました。 正確な状況ではありませんが、データセットにはxmlにエクスポートするメソッドが用意されています。 レコードの数が問題になる場合があり(データテーブルを埋めるのに時間がかかる)、ステップを追加する必要があります(データセットからxmlへ、次にcsvへ)