0

SQLite アドミニストレーターを使用してデータベースを作成しました。3 つのテーブルが含まれており、データベースはドキュメント フォルダーにあります。また、DBMetal を使用して Linq のマッピング クラスを作成しました。

以下のアプリケーションでは、データベースに接続し、SongMasterLocal に新しいデータを挿入するためのコードを示します。

        static SQLiteConnection con = new SQLiteConnection(@"data source=C:\\Users\\Kam\\SongDb.s3db");

        SongDBML.SongDBMLDataContext dCon=null;

                      try
                      {

                         dCon = new SongDBML.SongDBMLDataContext(con);
                         SongDBML.SongMasterLocal tempSongMaster = new SongDBML.SongMasterLocal();
                          tempSongMaster.SongFilePath = this.FilePath;
                          tempSongMaster.Cleaned = true;
                         dCon.Connection.Open();
                         dCon.Connection.BeginTransaction();

                         dCon.GetTable<SongMasterLocal>().InsertOnSubmit(tempSongMaster);

                      //dCon.SongMasterLocal.InsertOnSubmit(tempSongMaster);
                      dCon.GetTable<NewTags>().InsertOnSubmit(tempNewTags);
                      dCon.SubmitChanges();
return true;


              }

              catch (Exception e)
              {
                  dCon.Connection.Close();
                  //throw e;
              }

コードを実行すると、SQLite エラーが発生します: そのようなテーブルはありません SongMasterLocal

SQLite 実行コマンドを使用して新しいテーブルを作成しようとすると、「テーブルが既に存在するというエラー」がスローされます。

誰でも問題を解決するのを手伝ってくれませんか。

さらにコードやデバッグ トレースが必要な場合は、お問い合わせください。投稿します。

4

1 に答える 1

0

問題を修正しました。問題は、SQLiteで認識されなかった完全な名前空間と同じようにテーブル名を持つDBMetalによって作成されたマッピングクラス(DBMLファイル)にありました。これは今では魅力のように機能します。– </ p>

于 2011-04-27T04:38:39.843 に答える