ローカルデータベースファイルを作成してからアプリケーションに接続する適切な方法は何ですか?私はあなたがプロジェクトフォルダの場所を変更しても動作するようにしたい。アプリケーションの終了時にデータベースのすべてのデータが削除されます
プロジェクト - >新しいアイテムを追加 - >サービスベースのデータベースを作成して作成した後、データ - >新しいデータソースを追加し、作成したデータベースを追加して接続を取得します文字列。
いいえ、私はそれを私が望むように接続することはできますが、アプリケーションを終了するとき(常にではありません)データベースからすべてのデータが消去されます。例えば
、このコード:
SqlConnection c = new SqlConnection(@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True");
c.Open();
SqlCommand cmd;
cmd = new SqlCommand("CREATE TABLE Persons (id int primary key, nume char(20), age int)");
cmd.ExecuteNonQuery();
cmd = new SqlCommand("INSERT INTO Persons VALUES (@id, @name, @age)", c);
cmd.Parameters.AddWithValue("@id", 1);
cmd.Parameters.AddWithValue("@name", "Catalin");
cmd.Parameters.AddWithValue("@age", 20);
cmd.ExecuteNonQuery();
私はそれをテーブルを作成し、アイテムを追加し、その後、私はそれを実行する場合、SqlCommandオブジェクトことなく、第2のタイムテーブルを作成するために最初に実行PersonsはPersonsオブジェクトがないと言っていますが、同じコードで2回目のプロジェクトを実行すると、Personsオブジェクトが既に存在することがわかります。
私はVisual C#Express Editionを使用しています2010.
"デバッグを開始する"をクリックしてプログラムを実行していますか?また、.mdfはBinフォルダにありますか?はいの場合は、プログラムをビルド/実行するたびに.mdfが上書きされる可能性があります。 –
[marc_s answer](http://stackoverflow.com/a/36245969/447156)はかなり正しいです。また、['using'ステートメント](https://msdn.microsoft.com/en-us/library/yh598w02.aspx)を使用して接続とコマンドを自動的に破棄することをお勧めします。' Add'メソッドを使用する方がよいでしょうパラメータの型を指定して、[AddWithValue'ではなく、サイズを指定します。[予期しない結果が生成されることがあります](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using- addwithvalue-already /)。 –