2011-10-26 16 views
1

私はWindows phoneアプリケーションを持っており、データベースに接続しようとしています。データベースは有効ですが、私は確認しました。私はcodeplexのsqliteクライアントを使用して接続しようとしています。は自分のsqliteデータベースに接続できません

最初に私が使用して自分のプロジェクトに私のデータベースを追加「>を追加>既存項目>」その後、私は、コードを使用して接続しよう:

db = new SQLiteConnection(@"Database.db"); 
db.Open(); 

Debug.WriteLine("DB opened"); 
SQLiteCommand cmd = db.CreateCommand("SELECT * FROM Tags"); 
var lst = cmd.ExecuteQuery<Tags>(); 

foreach (Tags r in lst) 
{ 
    Debug.WriteLine(r.Tag); 
} 
Debug.WriteLine(":D"); 

マイタグクラスは、次のようになります。

public class Tags 
{ 
    public int id { get; set; } 
    public string Tag { get; set; } 
} 

そして、no such table:Tagsがあると言って、sqliteプロジェクト(Sqlite3.Vdbe Prepare())にエラーが表示されます。テーブルはそこにあります、私はデータベースを見て、テーブルの名前が正しいです。

私は間違っていますか?

+0

db = new SQLiteConnection(@ "Data Source = Database.db"); –

+0

は動作しません、アプリケーションはデータベースの場所を見つけることができません – Alex

+0

ちょうどあなたがWP7であることを認識しました。私はそれがそこでサポートされているとは思わない。 WP7では、IsolatedStorageまたはXMLファイルを使用できます。 SQLデータベースが必要な場合 - バックエンドを作成し、Webサービス経由で呼び出します。私はiOSとAndroidの両方がデフォルトでSQLサポートを含んでいるので奇妙なことを知っている:( –

答えて

0

ファイル名の代わりにフルパスを指定してみてください。私はWindowsの携帯電話は "現在のディレクトリ"を持っていないと思うので、アプリケーションはおそらくルートフォルダを探します。

SQLiteクライアントに存在しないファイルを指定すると、自動的に空のデータベースが作成され、そこに「接続」されます。

+0

プロジェクトのルートに定義されているローカルファイルのパス全体は何ですか?Windowsパス全体を渡そうとしますが、winPho7 VM (アプリケーションのサンドボックス外) – Alex

+0

'Path.GetDirectoryName(新しいUri(Assembly.GetExecutingAssembly()。GetName()。CodeBase).AbsolutePath)'を使用して、実行可能ファイルのディレクトリを取得することができます。また、接続を開く前に 'File.Exists(path_to_database)'をテストしてください。これが本当に問題であることを確認することができます。 –

+0

は動作しません。アプリケーションがフリーズします。 – Alex

関連する問題