以前に C++ で sqlite.h をインクルードしてこれを行ったことがありますが、C# でも同様に簡単な方法はありますか?
10 に答える
一緒だよ、ブルース。私も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が利用可能です。
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}!");
}
}
}
私はこれを大成功で使用しました:
http://system.data.sqlite.org/
制限なしで無料。
(レビューからのメモ:元のサイトはもう存在しません。上記のリンクには404サイトを指すリンクがあり、元のサイトのすべての情報が含まれています)
-ブルース
http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappersに .Net 用の Sqlite ラッパーのリストがあります。私が聞いたことからhttp://sqlite.phxsoftware.com/はかなり良いです。この特定のものを使用すると、他のデータベースと同様に、ADO.Net を介して Sqlite にアクセスできます。
https://github.com/praeclarum/sqlite-netがおそらく最良の選択肢です。
次のオプションもあります: http://code.google.com/p/csharp-sqlite/ - C# への SQLite の完全な移植。
NET FrameworkでSQLiteデータベースを使用する別の方法は、Fluent-NHibernateを使用することです。
[これは、NHibernateをラップアラウンドするNETモジュール(ORMモジュール-オブジェクトリレーショナルマッピング)であり、流暢なパターンでプログラム的に(XMLファイルなしで)NHibernateを構成できるようにします。]
これは、C#でこれを行う方法の簡単な「はじめに」の説明です。
https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started
VisualStudioプロジェクトとしてソースコードが含まれています。
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 で動作します。
これは、サードパーティのライブラリへの依存を最小限に抑え、すべての世界の中で最も薄いようです. このプロジェクトを最初からやらなければならないとしたら、これが私のやり方です。
ライブラリに問題がある場合は、使用できます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 を追加できます