有没有办法在MYSQL中创建数据库而不在C#中使用SMO

时间:2012-03-13 18:22:11

标签: c# mysql smo

我正在尝试通过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 个答案:

答案 0 :(得分:1)

您必须像在示例中那样使用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"
}

答案 1 :(得分:0)

您可以使用以下内容:

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功能。