2012-03-13 15 views
1

SMOを使用せずにC#でデータベースを作成しようとしていますか?私は現時点でこれを持っていますが、私はそれが間違っている99%です。C#でSMOを使用せずにMYSQLでデータベースを作成する方法はありますか

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を使わずに実際に行うことができますか?

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(); 

注:

+2

あなたが話しているデータサーバーの種類についてはわかりません。 SMOはMSSQLですが、MySsqlCommandはMySQLです... – Sascha

+0

申し訳ありませんが、Saschaは、間違ったタイトルを語った! – r0bb077

+0

MSSQLの回答を削除 – Sascha

答えて

1

この例では、MySqlCommandを使用する必要があります。

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

あなたが修正をたくさんやっているつもりなら、私は、ビルドスクリプトの一部として、データベースの作成/移行を処理するためにManateeのようなツールを試すことをお勧めしたいです。これは、あなたがやっていることについてたくさんの仮定をしていますが、それを知っていることを傷つけることはありません。

これは、レールと同様の移行を.netに追加します。

{ 
    up: "CREATE TABLE Orders (ID {pk}, OrderNumber {string} NOT NULL, SubTotal {money})", 
    down: "DROP TABLE Orders" 
} 
+0

ありがとうございます!私はすでに作成し、SQLファイル内のデータベースをエクスポートした、とにかくこれをインポートするいくつかの文字列変数に1つの長いSQLクエリを作成するにはありますか? – r0bb077

+0

デフォルトではありませんが、いくつかのmysqlコマンドでは難しくありません。あなたは多かれ少なかれshow table describe tableでforeach文字列を実行し、適切な場所では{string}や{pk}のようなデータ型のいくつかを置き換えます。 – sclarson

0

あなたはこのようなもの使用することがありますデフォルトのデータベースがないが、あなたは権利を持っている必要があります。そして、これはテストされていないコードで、標準のSQL機能を使用しています。

関連する問題