2012-02-05 11 views
3

私は外部のリソースを調べようと多くの時間を費やしましたが、期待していたよりもさまざまなソリューションが関与しているようです。既存の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使用

+0

あなたはstr' 'で生成されたSQLを取る場合と、 SSMSでそれを実行して何が起こるのですか? –

+1

提案: 'try-catch'ブロックの中で' using'を試してみてください。 usingを使用すると接続が終了し、 'using'または' .Close() 'が例外をスローすると' catch'ブロックをキャッチできます。 –

+0

アクセス拒否エラーが発生します。その場所に.mdfファイルを作成することもできません。私は、SQLインスタンス内の別のデータベースにログオンするためのクレジットを知っていますが、DBを作成する私にそれをどのように適用するのかわかりません。私はまた、どこに.mdfファイルを置くか、または他のファイルがどこに格納されているのかわかりません。 – ikathegreat

答えて

7

:SMOアプリケーションを構築するには

Server server = new Server("servername"); 
    Database db = new Database(server, "MyDatabaseName"); 
    db.Create(); 

は、あなたがSMOアセンブリを参照する必要があります。マイクロソフトに

  • Microsoft.SqlServer.Smo.dll
  • Microsoft.SqlServer.ConnectionInfo.dll
    • を:これらのアセンブリへの参照を追加 '参照の追加' とフォルダ

      C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies 
      

      に移動をクリックします.SqlServer.Management.Sdk.Sfc.dll

    側注で

    using Microsoft.SqlServer.Management.Smo; 
    

    :3210

    は上記のコードを含むファイルには、このusingステートメントを追加します

    +0

    私はそれらの参照を見つけることができないようです! 私は.NET Framwork 4.0を使用していますので、次の例に従ってください。http://www.codeproject.com/Articles/13755/SMO-Manage-your-SQL-Server正しい.NETリファレンスが見つかりません。 – ikathegreat

    +0

    どうすればいいですか?私はSQL 2008 R2を持っています。マイクロソフトのサイトはまったく役に立たなかった(驚き) – ikathegreat

    +0

    私はそうは思わない、http://msdn.microsoft.com/en-us/library/ms162189。aspx – ikathegreat

    関連する問題