2009-05-07 31 views
7

こんにちは人私はC#2.0アプリケーションでsqliteを使用するのに苦労していましたが、最終的には仮定を取り除き、本当に基本的な質問をすることにしました。sqlite3.dllとsystem.data.sqlite.dll

私はFirefoxを差し込むと、私はそれがSystem.Data.SQLite.SQLiteException:Sqlite Error no such table usersを表示VS2005内sqlicommandからそれを照会することはできません別のSQLADMINツールなどの外部ツールから、テーブルのユーザーとiagencyを言うのデータベースを作成したとき、私はsystem.data.sqliteへの参照を作りましたのでご安心くださいSQLite-1.0.61.0-setupと一緒にインストール

私はVSサーバエクスプローラとVSデータベースのguiツールからデータベースとテーブルを作成するのとは逆の方法でクエリを実行することはできませんが、他のツールでも見ることができますstringbuilderを使用してVSからのクエリによって作成されたテーブル。たとえば、create table bla bla。データグリッドに表示することはできますが、そのテーブルを表示して表示できるツールはありません。

私のアプリケーションでSQLiteの作業を行うには、どうすればよいですか?

私は自分のアプリケーションへの参照として、Windows用のセクションコンパイル済みのバイナリの下にsqliteのサイトからダウンロードsqlitedll-3_6_14.zipのsqlite3.dllを追加しようとしましたが、それはmake sure it's accessible an it's a valid assembly or com componentで失敗します。

+0

いくつかのサンプルコードを投稿してください。 –

答えて

11

私はこれをダウンロードしましたSQLite-1.0.61.0-setup.exeインストールを実行し、firefoxお気に入りsqlite dbにアクセスするためにこれを書きました。

using System.Data.SQLite; // Dont forget to add this to your project references 
          // If the installation worked you should find it under 
          // the .Net tab of the "Add Reference"-dialog 

namespace sqlite_test 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var path_to_db = @"C:\places.sqlite"; // copied here to avoid long path 
      SQLiteConnection sqlite_connection = new SQLiteConnection("Data Source=" + path_to_db + ";Version=3;New=True;Compress=True;"); 

      SQLiteCommand sqlite_command = sqlite_connection.CreateCommand(); 

      sqlite_connection.Open(); 

      sqlite_command.CommandText = "select * from moz_places"; 

      SQLiteDataReader sqlite_datareader = sqlite_command.ExecuteReader(); 

      while (sqlite_datareader.Read()) 
      { 
       // Prints out the url field from the table: 
       System.Console.WriteLine(sqlite_datareader["url"]); 
      } 
     } 
    } 
} 
+2

** System.Data.SQLite'アセンブリが**参照の追加.../.Net **(私はしませんでした)で見つからない場合**参照**から追加してください。 x86版を使用している場合は、2つのDLLが 'C:¥Program Files¥System.Data.SQLite¥bin'(または' C:¥Program Files(x86)¥System.Data.SQLite¥bin')にあります64ビットWindowsインストールで) – ocodo

3

コマンドラインSQLiteツール(SQLite.org)でデータベースを開き、スキーマを確認してください。

あなたは、このようにスキーマを確認することができます。これは、データベース内のテーブルを作成するために必要なすべてのSQLをダンプします

.schema 

。あなたが持っているはずの名前でテーブルがそこにあることを確認してください。

SQLite.orgの.dllファイルは必要ありません。必要なのはSystem.Data.SQLiteのアセンブリのみです。

+0

reply.Hereのおかげでありがとうございます。別の愚かな質問です。私はexeアプリを抽出する必要がありますか?私はデータベースを選択するためにこのコマンドの.databaseでデータベースを選択しようとしましたが、何もありません。私のC#アプリケーションフォルダ内のexeをコピーして、このコマンド "sqlite3 iagency"を表示しようとすると、何も表示されませんでした –

+0

私は問題を解決しましたhere.see私はRのUbben.ishould iagency.db私はextension.iを忘れてしまった。あなたが「この方法でスキーマをチェックすることができる」という意味がうまくいかず、cmd.exeからsqlite3のiagency.dbをタイプして選択した後に.schemaまたはそれをタイプした.schema users.thanks man –

0

アセンブリの場所とdbをパス環境変数に追加してみてください。 SQLiteアセンブリには.Netとネイティブコードが一緒にマージされているので、C DLLは必要ありません。 (これを行うためのマージンツールはかなり面白いです)

+0

のようなテーブル名が続いているはずです。sqlite.exeパスを環境変数variable.didに追加しました。Windowsのcmd.exeを使用してドライブdのテストをいくつか行いました。今私は私のプロジェクトと以前作成したデータベースがどこにディレクトリを変更します。 sqlite3のiagencyおよび.schemaコマンドは出力を生成しません。 .scheman?ユーザーを試したことがありますか?何もない何かが足りない? –

2

私の場合 - thisリンクはスタート時に多くの手助けをしました。

ウェブアプリケーションを通じてデータベースにアクセスできるようにするために、亜音速の作業を難しくしました -
しかしこれは別の話です。

0

また、にパスの環境変数を追加しようとしましたが、成功しませんでした。

最後に、他のアセンブリがあるWebアプリケーションのbinフォルダにSystem.Data.SQLite.dllSystem.Data.SQLite.libをコピーしてアプリケーションが動作しました。

関連する問題