2017-07-29 3 views
0

私はプロジェクトに読み込んで追加または更新する必要があるデータとテーブルを含むSQL Server .MDFデータベースファイルを持っています。 SQL Serverが既にインストールされている2番目のPCでプログラムを実行すると、データベースが見つからないというエラーが表示されます。SQL Server mdfファイルを任意の認証なしでWindowsで簡単に使用する

注1:データベースは、SQL Server 2012ローカルホストサーバーとWindows認証モードで作成されました。

私はロードのため、このコードを使用して、データベースを使用しています:

SqlConnection c = new SqlConnection(@"Data Source=.;Initial Catalog=db1;Integrated Security=True"); 

private void Form1_Load(object sender, EventArgs e) 
{ 
    String str; 
    SqlConnection myConn = new SqlConnection(@"Data Source=.;Initial Catalog=db1;Integrated Security=True"); 

    str = "CREATE DATABASE db1"; 
    SqlCommand myCommand = new SqlCommand(str, myConn); 

    try 
    { 
     myConn.Open(); 
     myCommand.ExecuteNonQuery(); 
     MessageBox.Show("First db is Created", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information); 
    } 
    catch (System.Exception ex) 
    { 
     // MessageBox.Show("DB is exist"); 
    } 
    finally 
    { 
     if (myConn.State == ConnectionState.Open) 
     { 
      myConn.Close(); 
     } 
    } 

    using (SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=db1;Integrated Security=True")) 
    { 
     try 
     { 
      //Open.the SqlConnection; 
      con.Open(); 

      //The following code uses a SqlCommand based on the SqlConnection 
      using (SqlCommand command = new SqlCommand("CREATE TABLE contents(id int IDENTITY(100, 1),Name char(50) NOT NULL,Lastname char(50) NOT NULL,Number char(50) ,Area nvarchar(50) ,Date nvarchar(50)NULL,Duration nvarchar(MAX),description nvarchar(MAX),gender nvarchar(50),number2 nvarchar(50),DT datetime NULL);", con)) 
        command.ExecuteNonQuery(); 
     } 
     catch (Exception ex) 
     { 
      //MessageBox.Show("Tables created"); 
     } 
    } 
} 

ロードテーブル

private void button4_Click(object sender, EventArgs e) 
{ 
    SqlDataAdapter a = new SqlDataAdapter("select * from contents", c); 
    DataTable t = new DataTable(); 
    a.Fill(t); 

    dataGridView1.DataSource = t; 
    dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount - 1; 
    dataGridView1.AutoResizeColumns(); 
} 

をしかし、それはDBは、別のPCに毎日移動し、それされ非常にユニークかつ有用ではありませんも完全にロードする必要があります私は静的なSQLファイル内のいくつかのテーブルがあり、彼らはそれらのためにコーディングする必要はありません、私は単にリソースとしてそれらを使用したい。また、埋め込まれたまたはローカルDBは、アプリケーションのデータフォルダ内のdbとして使用することができます私はここでいくつかの助けが必要なのでアプリを賢明に移動することができるいくつかの方法について聞いた。代わりに生デシベル毎回の作成のおかげ

+1

、あなたは**持っている必要があります下にように、ソースとしてあなたのMDFファイルを使用することができます** SQL SQL Serverを使用している場合は** WindowsまたはSQL Server認証を使用する必要があります***あなたは***の形式の認証なしで '.mdf'ファイルにアクセスできません.... –

+0

なぜあなたはそのデータベースをバックアップし、それを新しいPCに復元しないのですか?両方のPCが同じLANにある場合は、データベースに直接接続してください。 –

答えて

1

は、あなたが `.mdf`ファイルを使用する場合は

Create database dbname 
On 
( 
Filename= 'path where you copied mdf file' 

) 
For attach; 
+0

hmmその良いので、mdfファイルのURLを使用できますか?面白い実際に私はプログラムのフォルダにdbをコピーしたいと思います。デバッグなので、デフォルトの実行パッチを使用してください。 – dado

+0

パスはパスを共有できます – TheGameiswar

関連する問題