Есть ли способ создания базы данных в MYSQL без использования SMO в C # - PullRequest
1 голос
/ 13 марта 2012

Я пытаюсь создать базу данных через C # без использования SMO, это возможно ?! У меня есть это в данный момент, но я на 99% ошибаюсь;

connectionString2 = "SERVER=" + server + ";" + "DATABASE=master;" 
                            + "UID=" + uid + ";" + "PASSWORD=" + password + ";"

this.OpenConnection(); //Which opens the above connection

// The Lines array has stored the sql statements to create the databse 
// and tables for that database 
foreach (string line in lines)
{
    create_database += line;
}
MySqlCommand cmd = new MySqlCommand(create_database, connection2);
cmd.ExecuteNonQuery();

возможно ли это сделать без использования SMO?!

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Вы должны использовать MySqlCommand, как в примере.

MySqlCommand cmd = new MySqlCommand("CREATE DATABASE YAYNEWDATABASE;", connection2);
connection2.Open();
cmd.ExecuteNonQuery();
connection2.Close();

В качестве альтернативы, если вы собираетесь делать много модификаций, я бы предложил попробовать инструмент, подобный Manatee , для управления созданием / миграцией вашей базы данных как часть сценария сборки. Это делает много предположений о том, что вы делаете, но не больно знать об этом.

Это добавляет миграцию, аналогичную миграции в rails, в .net.

{
    up: "CREATE TABLE Orders (ID {pk}, OrderNumber {string} NOT NULL, SubTotal {money})",
    down: "DROP TABLE Orders"
}
0 голосов
/ 13 марта 2012

Вы можете использовать что-то вроде этого:

var connection = new MySqlConnection("Data Source=server;UserId=root;PWD=pass;");
var command = new MySqlCommand("CREATE DATABASE FancyDatabase;", connection);
connection.Open();
command.ExecuteNonQuery();
connection.Close();

Примечание: база данных по умолчанию отсутствует, и вам необходимо иметь права.И еще: это непроверенный код, использующий стандартные функции sql.

...