私は外部のリソースを調べようと多くの時間を費やしましたが、期待していたよりもさまざまなソリューションが関与しているようです。既存のSQL Server 2008にデータベースを追加する
私は次のことを達成しようとしています:
- このローカルコンピュータ上の既存のSQLインスタンスに単純なデータベースを作成します。
- セキュリティはちょうど
- 他のオプションが不要な簡単なユーザー名とパスワード(ログインし、成長、最大サイズなど)である必要があり
この私のプログラムとデータベースの統合で私の最初の試みです。 SQLiteやSMOを使用すると、やや圧倒的なスタートを切ったようです。データベースを作成するための単純なクエリ文字列か何かを作成する方法について
private void createDatabase()
{
String str;
SqlConnection myConn = new SqlConnection("Server=" + serverName + ";Integrated security=SSPI;database=master");
str = "CREATE DATABASE " + dbName + " ON PRIMARY " +
"(NAME = " + dbName + "_Data, " +
"FILENAME = 'C:\\" + dbName + ".mdf', " +
"SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
"LOG ON (NAME = " + dbName + "_Log, " +
"FILENAME = 'C:\\" + dbName + ".ldf', " +
"SIZE = 1MB, " +
"MAXSIZE = 5MB, " +
"FILEGROWTH = 10%)";
SqlCommand myCommand = new SqlCommand(str, myConn);
try
{
myConn.Open();
myCommand.ExecuteNonQuery();
MessageBox.Show("DataBase is Created Successfully", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally
{
if (myConn.State == ConnectionState.Open)
{
myConn.Close();
}
}
}
任意のアイデア:私は仕事に、このサンプルコードを変更しようとしてきましたか?より良い方法があれば、それはいいですが、私はそれをできるだけ簡単に保つことを心掛けています。 SMO使用
あなたはstr' 'で生成されたSQLを取る場合と、 SSMSでそれを実行して何が起こるのですか? –
提案: 'try-catch'ブロックの中で' using'を試してみてください。 usingを使用すると接続が終了し、 'using'または' .Close() 'が例外をスローすると' catch'ブロックをキャッチできます。 –
アクセス拒否エラーが発生します。その場所に.mdfファイルを作成することもできません。私は、SQLインスタンス内の別のデータベースにログオンするためのクレジットを知っていますが、DBを作成する私にそれをどのように適用するのかわかりません。私はまた、どこに.mdfファイルを置くか、または他のファイルがどこに格納されているのかわかりません。 – ikathegreat