none
データーベースに変更内容を保存する。 RRS feed

  • 質問

  • いま、LINQを使ってデーターベースの操作をしているのですがLINQをやり始めたばかりで、かなり初心者的な質問になってしまうのですが、よろしくお願いいたします。

    このコードは、データーベースのTileMapDBsというテーブルに列を挿入して変更内容を保存しようとしているコードです。

    1 TileMapDB DB = new TileMapDB();  
    2 string[] type = new string[] { "A""B""C""D""E","F" };  
    3 using (TileMapsDataContext tm = new TileMapsDataContext())  
    4 {  
    5     Random ra = new Random();  
    6  
    7     foreach (string tpye_s in type)  
    8     {  
    9         for (int x = 1; x <= 8; x++)  
    10         {  
    11             for (int y = 1; y <= 31; y++)  
    12             {  
    13                 TileMapDB tmdb = new TileMapDB  
    14                 {  
    15                     PaleteXY_ID = (x * 1000 + y).ToString() + tpye_s,  
    16                     ChipID = null,  
    17                     ImageXY_ID = null,
                        //主キー(ここでは使わないため、乱数を入れている  
    18                     dummy_key = ra.Next()  
    19  
    20                 };  
    21                 tm.TileMapDBs.InsertOnSubmit(tmdb);  
    22             }  
    23         }  
    24     }  
    25     tm.SubmitChanges();  
    26

    これで、プログラムが走っている間は挿入した値が正しく取得できるのですがどうもDBのファイルに書き込めていないようなのです。(プログラム終了後、LINQで値を確認したら、きれいさっぱり値が消えてました。)
    何か間違っているところ、足りないところなどがあると思うのですがMSDNを当たってみてもググってみてもわかりませんでした。

    DBに書き込む方法を教えていただけないでしょうか。よろしくお願いします。

    解決したら、解決済みにチェックを入れましょう。 後から見た人が情報を素早く入手できます。
    2009年3月16日 6:10

回答

  •  データベースは何でしょうか? mdbやmdfの場合でしたら、以下のようにしてみて下さい。

    ソリューションエクスプローラ上でデータファイル(.mdf)を右クリックしてプロパティを表示し、「出力ディレクトリにコピー」の設定を、「常にコピーする」から「新しい場合はコピーする」へ変更する 。

    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク kassyi 2009年3月16日 8:04
    2009年3月16日 6:41
    モデレータ

すべての返信

  •  データベースは何でしょうか? mdbやmdfの場合でしたら、以下のようにしてみて下さい。

    ソリューションエクスプローラ上でデータファイル(.mdf)を右クリックしてプロパティを表示し、「出力ディレクトリにコピー」の設定を、「常にコピーする」から「新しい場合はコピーする」へ変更する 。

    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク kassyi 2009年3月16日 8:04
    2009年3月16日 6:41
    モデレータ
  • > データベースは何でしょうか? mdbやmdfの場合でしたら、以下のようにしてみて下さい。
    すみません。そこを書くのを忘れてました。仰せのとおりであっています。

    >ソリューションエクスプローラ上でデータファイル(.mdf)を右クリックしてプロパティを表示し、「出力ディレクトリにコピー」の設定を、「常にコピーする」から「新しい場合はコピーする」へ変更する 。

    ありがとうございました。VSで見ても全部書き込まれていなかったのは、プロジェクトで使っているデーターベースでなくBinフォルダー中にコピーされた、データーベースをいじってたからなんですね…。何で気がつかなかったんだろう…。

    回答、どうもありがとうございました。
    解決したら、解決済みにチェックを入れましょう。 後から見た人が情報を素早く入手できます。
    2009年3月16日 8:12