Как создать фрагмент скрипта C # .NET, чтобы сервер MySql мог выполнить скрипт MySql? - PullRequest
1 голос
/ 14 июля 2011

Предположим, у меня есть сценарии myTest.sql, которые содержат тысячи операторов "create table blahblah".

myTest.sql:

 CREATE TABLE A;
 CREATE TABLE A1;
 ....
 CREATE TABLE A1000;

Я пытаюсь добиться того, чтобы скрипт C # заставил сервер MySql ИСПОЛЬЗОВАТЬ файл myTest.sql вместо

  using (MySqlConnection cn = new MySqlConnection(ConectionString))
  {
    MySqlCommand newCmd = new MySqlCommand("create statement here 1", cn);
    cn.Open();
    newCmd.ExecuteNonQuery();
    cn.Close();
  }     

Я не хочу повторять 1000 раз или цикл for что-то в этом роде. Спасибо за помощь и, пожалуйста, прости мои проблемы с грамматикой.

Ответы [ 3 ]

2 голосов
/ 14 июля 2011

Не могли бы вы загрузить файл myTest.sql в строку и передать его MySqlCommand.

string myTestSql = IO.File.ReadAllText("myTest.sql");
...
MySqlCommand newCmd = new MySqlCommand(myTestSql, cn);

Должно работать, пока MySQL принимает команды, разделенные точкой с запятой.

0 голосов
/ 14 июля 2011

Использовать this
Вы можете сделать это с помощью командной строки mysql и оболочки с System.Process статическими методами, если хотите использовать .net / c #.

0 голосов
/ 14 июля 2011

Вам, конечно, не нужно открывать и закрывать соединение каждый раз, но было бы лучше, если бы вы запускали каждый из них по очереди и смотрели на результат, чтобы убедиться, что оператор завершился успешно. К сожалению, если вы выполняете гигантский оператор с 1000 утверждениями, и он терпит неудачу, у вас нет простого способа определить, какие шаги были успешными, а какие необходимо повторить.

...