C#接続Sqlite
3985 ワード
1、Slite概要
SQLiteは、軽量なデータベースであり、ACIDを遵守する関連データベース管理システムであり、その設計目標は組み込み型であり、現在多くの組み込み型製品で使用されており、リソースの占有量は非常に低く、組み込み型デバイスでは数百Kのメモリだけで十分である可能性がある.Windows/Linux/Unixなどの主流のオペレーティングシステムをサポートすると同時に、Tcl、C#、PHP、Javaなど多くのプログラム言語と結合することができ、ODBCインタフェースもあり、Mysql、PostgreSQLの2つのオープンソース世界で有名なデータベース管理システムよりも処理速度が速い.SQLiteの最初のAlphaバージョンは2000年5月に誕生した.これで13年になり、SQLiteもSQLite 3のリリースを迎えました.
2、C#にSqliteを接続する
Sqliteを接続するにはまずSystemを追加する必要がある.Data.SQLite.dllとSystemData.SQLite.Linq.dllの参照、この2つのdllファイルはあなたのオペレーティングシステムのバージョンによって適切なインストールバージョンを選択することができて、インストールが完了した後のファイルの経路はC:Program FilesSystemです.Data.SQLite\2008\bin.
上記の2つの参照を追加した後、呼び出しを容易にするためにSqlHelperクラスを書きました.
上のクラスには、基本的な操作が含まれています.一般の人は十分です.私のクラスが正しく確立されているかどうかをテストするために、コンソールプログラムを新規作成しました.コードは以下の通りです.
中間にブレークポイントを設定してデバッグしますが、正しいことがわかりました.
添付ファイル:
Sqlite関連ファイルのダウンロード
SQLiteは、軽量なデータベースであり、ACIDを遵守する関連データベース管理システムであり、その設計目標は組み込み型であり、現在多くの組み込み型製品で使用されており、リソースの占有量は非常に低く、組み込み型デバイスでは数百Kのメモリだけで十分である可能性がある.Windows/Linux/Unixなどの主流のオペレーティングシステムをサポートすると同時に、Tcl、C#、PHP、Javaなど多くのプログラム言語と結合することができ、ODBCインタフェースもあり、Mysql、PostgreSQLの2つのオープンソース世界で有名なデータベース管理システムよりも処理速度が速い.SQLiteの最初のAlphaバージョンは2000年5月に誕生した.これで13年になり、SQLiteもSQLite 3のリリースを迎えました.
2、C#にSqliteを接続する
Sqliteを接続するにはまずSystemを追加する必要がある.Data.SQLite.dllとSystemData.SQLite.Linq.dllの参照、この2つのdllファイルはあなたのオペレーティングシステムのバージョンによって適切なインストールバージョンを選択することができて、インストールが完了した後のファイルの経路はC:Program FilesSystemです.Data.SQLite\2008\bin.
上記の2つの参照を追加した後、呼び出しを容易にするためにSqlHelperクラスを書きました.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SQLite;
namespace ConsoleSqlite
{
public class DBHelper
{
public SQLiteConnection GetCon()
{
string strFilePath = @"Data Source=C:\test.db";
string strCon = strFilePath + ";Pooling=true;FailIfMissing=false";
SQLiteConnection sqliteCon = new SQLiteConnection(strCon);
return sqliteCon;
}
}
public class SqlHelper : DBHelper
{
private DataTable dt;
private SQLiteConnection conn;
private SQLiteCommand cmd;
private SQLiteDataAdapter sda;
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public int RunSQL(string sql)
{
int count = 0;
try
{
conn = GetCon();
conn.Open();
cmd = new SQLiteCommand(sql, conn);
cmd.ExecuteNonQuery();
count = count + 1;
}
catch (Exception)
{
throw;
}
finally
{
conn.Close();
}
return count;
}
/// <summary>
/// datatable
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public DataTable GetDataTable(string sql)
{
DataSet ds = null;
try
{
conn = GetCon();
sda = new SQLiteDataAdapter(sql, conn);//OracleDataAdapter:
ds = new DataSet();
sda.Fill(ds);// ds
dt = ds.Tables[0];
}
catch (Exception)
{
throw;
}
finally
{
conn.Close();
}
return dt;
}
/// <summary>
///
/// </summary>
/// <param name="strTableName"></param>
/// <returns></returns>
public int GetCount(string strTableName)
{
string strSql = "select count(*) from " + strTableName;
int count = 0;
DataTable dtCount = GetDataTable(strSql);
count = int.Parse(dtCount.Rows[0][0].ToString());
return count;
}
}
}
上のクラスには、基本的な操作が含まれています.一般の人は十分です.私のクラスが正しく確立されているかどうかをテストするために、コンソールプログラムを新規作成しました.コードは以下の通りです.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace ConsoleSqlite
{
class Program
{
static void Main(string[] args)
{
SqlHelper helper = new SqlHelper();
string strSql = "Select * From county";
DataTable dt = helper.GetDataTable(strSql);
Console.WriteLine("Hello");
}
}
}
中間にブレークポイントを設定してデバッグしますが、正しいことがわかりました.
添付ファイル:
Sqlite関連ファイルのダウンロード