5

SQLiteデータベースの一部のテーブルのみを呼び出すサンプルアプリケーションの作業を開始したばかりで、これ以外に発生した他の問題を解決することができました。

私はこれを検索しましたが、接続文字列、アクセス許可の問題などの提案された解決策はどれも有効でなく、私にとっては機能しているようです。権限については、Everyoneフルコントロールでユーザーを追加しましたが、それでも同じエラーが発生します。

以下は私が実行しようとしているコードです:

// calling function
void getRecords2()
    {
        MySqlLite.DataClass ss = new MySqlLite.DataClass();
        DataTable dt = ss.selectQuery("select * from english_words"); 
    }

// the SQLite class that execute the code
using System.Data;
using System.Data.SQLite;

namespace MySqlLite
{
    class DataClass
    {
        private SQLiteConnection sqlite;

        public DataClass()
        {            
            //This part killed me in the beginning.  I was specifying "DataSource"
            //instead of "Data Source"
            sqlite = new SQLiteConnection(@"Data Source=C:\testwork\db\MrPick.sqlite3.db;Version=3;FailIfMissing=True");

        }

        public DataTable selectQuery(string query)
        {
            SQLiteDataAdapter ad;
            DataTable dt = new DataTable();

            try
            {
                SQLiteCommand cmd;
                sqlite.Open();  //Initiate connection to the db
                cmd = sqlite.CreateCommand();
                cmd.CommandText = query;  //set the passed query
                ad = new SQLiteDataAdapter(cmd);
                ad.Fill(dt); //fill the datasource

                cmd.Dispose();
                sqlite.Dispose();  

            }
            catch (SQLiteException ex)
            {
                //Add your exception code here.
            }
            sqlite.Close();
            return dt;
        }
    }
}

注:次のアセンブリを使用しました。

ADO.NET SQLite Data Provider
Version 1.0.82.0 September 3, 2012
Using SQLite 3.7.14
Originally written by Robert Simpson
Released to the public domain, use at your own risk!
Official provider website: http://system.data.sqlite.org/

私はこれについてあなたの助けに本当に感謝します。

4

2 に答える 2

11

コメントによると、コードが存在しないファイルを指しているため、「データベース ファイルを開けません」というエラーが表示されます。

「テーブルが見つかりません」というエラーは、データベースは見つかったが、探していたテーブルが見つからなかったことを意味します。一方、「データベース ファイルを開くことができません」とは、データベースを見つけることさえできず、わざわざテーブルを探すことさえしなかったことを意味します。「テーブルが見つかりません」というメッセージが表示されると、正しく機能する可能性が高くなります。

ディスク上のファイルと一致するようにパスを元に戻してから、Firefox SQLite Managerenglish_wordsなどのツールを使用して、テーブルがデータベースに存在することを確認する必要があります。

存在しない場合は、そのツールで作成する必要があります。存在する場合は、「テーブルが見つかりません」エラーに関する別の質問をここに投稿する必要があります。

うまくいけば、それは役に立ちます。

于 2012-11-19T19:42:33.547 に答える
9

このエラーが発生したときparseViaFrameworkSQLiteConnectionコンストラクターを に設定する必要がありましたtrue

SQLiteConnection connection = new SQLiteConnection(connectionString, true);
connection.Open();
于 2017-08-21T10:37:05.237 に答える