51

以前に C++ で sqlite.h をインクルードしてこれを行ったことがありますが、C# でも同様に簡単な方法はありますか?

4

10 に答える 10

77

一緒だよ、ブルース。私もhttp://system.data.sqlite.org/を使用して大きな成功を収めています。私が作成した簡単なクラスの例を次に示します。

using System;
using System.Text;
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=/path/to/file.db");

        }

        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
              }
              catch(SQLiteException ex)
              {
                    //Add your exception code here.
              }
              sqlite.Close();
              return dt;
  }
}

NuGet パッケージもあります: System.Data.SQLiteが利用可能です。

于 2009-08-10T03:29:49.603 に答える
45

Microsoft.Data.Sqlite by Microsoft は毎日 9000 件以上ダウンロードされているので、安全に使用できると思います。

ドキュメントからの使用例:

using (var connection = new SqliteConnection("Data Source=hello.db"))
{
    connection.Open();

    var command = connection.CreateCommand();
    command.CommandText =
    @"
        SELECT name
        FROM user
        WHERE id = $id
    ";
    command.Parameters.AddWithValue("$id", id);

    using (var reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            var name = reader.GetString(0);

            Console.WriteLine($"Hello, {name}!");
        }
    }
}
于 2008-08-25T13:34:49.043 に答える
12

私はこれを大成功で使用しました:

http://system.data.sqlite.org/

制限なしで無料。

(レビューからのメモ:元のサイトはもう存在しません。上記のリンクには404サイトを指すリンクがあり、元のサイトのすべての情報が含まれています)

-ブルース

于 2008-08-27T18:03:45.683 に答える
6

http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappersに .Net 用の Sqlite ラッパーのリストがあります。私が聞いたことからhttp://sqlite.phxsoftware.com/はかなり良いです。この特定のものを使用すると、他のデータベースと同様に、ADO.Net を介して Sqlite にアクセスできます。

于 2008-08-25T13:29:44.347 に答える
5

https://github.com/praeclarum/sqlite-netがおそらく最良の選択肢です。

于 2013-06-20T14:15:54.310 に答える
5

次のオプションもあります: http://code.google.com/p/csharp-sqlite/ - C# への SQLite の完全な移植。

于 2009-08-07T15:16:00.370 に答える
3

NET FrameworkでSQLiteデータベースを使用する別の方法は、Fluent-NHibernateを使用することです。
[これは、NHibernateをラップアラウンドするNETモジュール(ORMモジュール-オブジェクトリレーショナルマッピング)であり、流暢なパターンでプログラム的に(XMLファイルなしで)NHibernateを構成できるようにします。]

これは、C#でこれを行う方法の簡単な「はじめに」の説明です。

https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started

VisualStudioプロジェクトとしてソースコードが含まれています。

于 2012-08-29T19:42:26.200 に答える
1

Mono にはラッパーが付属しています。それを使用してください。

https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0は、実際の SQLite dll ( http://www.sqlite. org/sqlite-shell-win32-x86-3071300.zip (ダウンロード ページhttp://www.sqlite.org/download.html/にあります) を .net に適した方法でダウンロードします。Linux または Windows で動作します。

これは、サードパーティのライブラリへの依存を最小限に抑え、すべての世界の中で最も薄いようです. このプロジェクトを最初からやらなければならないとしたら、これが私のやり方です。

于 2012-07-25T22:35:19.470 に答える
0

ライブラリに問題がある場合は、使用できますMicrosoft.Data.Sqlite;

 public static DataTable GetData(string connectionString, string query)
        {
            DataTable dt = new DataTable();
            Microsoft.Data.Sqlite.SqliteConnection connection;
            Microsoft.Data.Sqlite.SqliteCommand command;

            connection = new Microsoft.Data.Sqlite.SqliteConnection("Data Source= YOU_PATH_BD.sqlite");
            try
            {
                connection.Open();
                command = new Microsoft.Data.Sqlite.SqliteCommand(query, connection);
                dt.Load(command.ExecuteReader());
                connection.Close();
            }
            catch
            {
            }

            return dt;
        }

NuGet パッケージ Microsoft.Data.Sqlite を追加できます

于 2020-10-06T07:02:26.340 に答える