System.Data.SQLiteデータベースの詳細を紹介します。

9048 ワード

SQLiteはSystem.Data.SQLiteを紹介する前にSQLiteを紹介する必要があります。SQLiteはAccessに似たパーソナル版データベース管理システムで、すべてのデータベースの定義(定義、表、索引、データ自体を含む)を単一のファイルに保存します。また、SQLiteはCで実現されたクラスライブラリであり、メモリ消費、ファイル体積、単純性においてもいい表現があります。データが10 W以下なら、照会速度もかなり速いです。SQLiteは、多くのSQL 92の標準を実現することと、トランザクション(原子性、一貫性、分離性、持久性)、フリップフロップ、および多くの複雑なクエリを含むこととを特徴とする。挿入または更新されたデータをタイプチェックしないと、整数列に文字列を挿入できます。Windows/Linux/Unixなどの主流システムに対応し、AndroidやWindows Mobileなどの組み込みシステムもサポートしています。System.Data.SQLiteSystem.Data.SQLiteはSQLiteの強化版です。不要です。NET Frame ebookはサポートしています。内部にADO.NET 2.0エンジンが含まれていますので、NET開発者はSystem.Data.SQLiteを利用して、簡単に開発できます。NETプログラム。System.Data.SQLiteおよびSQLiteにもいくつかの制限があります。例えば、行レベルおよび表レベルのロックはサポートされていません。データベースを接続してデータを書き込むためにロックしています。他のデータベース接続は、その接続操作が完了したら読み書き操作を行うしかないです。SQLite.NETは、超時間内に何度も試してみます。実際には、大きなアプリケーションについては、私たちはいくつかの大型専門データベースを選択します。System.Data.SQLiteとSQLiteは、携帯電話などの限られた場所に適しています。ここで一つの本当の経験を話します。これまで小さいシステムを作ったことがあります。三つのエクセルファイルを分析したいです。その中の二つの記録は400本ぐらいです。もう一つは約1万本です。このようなシステムに対してはデータベースを使っても、単体版のAccessを導入してからデータベースの特性を分析します。これは比較的簡単なことです。データベースで接続クエリを使ってもいいし、記録にデータベース関数を使ってもいいです。しかし、相手が提供している情報はOfficeをインストールしていますが、Word、Excel、Outlookだけがインストールされています。Accessがないので、他のソフトをインストールしたくないです。AccessをインストールしていないマシンにOleDBでアクセスできるかどうかは分かりません。mdbファイルなので、仕方がないです。メモリテーブルの形式があるだけです。ExcelのデータをDataTableに読み込ませて、三つのDataTableを分析します。たくさんの優越化をしましたが、効率はまだあまり良くないです。このような状況に対して、System.Data.SQLiteを知っていれば、三つのエクセルの中のデータをSystem.Data.SQLiteに導入し、System.Data.SQLiteから提供された関数を利用して処理するのはかなり便利で便利です。System.Data.SQLiteにとっては、配備時にインストールする必要はなく、System.Data.SQLite.dllだけで十分です。このdllは866 Kです。また、Compコンポーネントを使うように登録する必要はありません。VSL 2008ではSystem.Data.SQLiteを操作して開発者を便利にするために、System.Data.SQLiteはVSL 2005とVSL 2008のサポートを提供しています。さらにサポートもしています。NET 3.5 SP 1のEntity Framewarkは、以下のようにVSL 2008でSystem.Data.SQLiteデバイスを使用しています。 次にデータ接続上でマウスの右ボタンをクリックし、下図のようにします。 次に「接続の追加」を選択し、下図のように この時System.Data.SQLiteで使用するデータベースファイルを選択します。ファイルの拡張子はデフォルトです。db 3は下の「テスト接続」ボタンをクリックしてもいいです。問題がないと正しいダイアログが表示されます。「確定」ボタンをクリックして、サーバーのリソースマネージャに次のような状況があります。 SQL Serverのライブラリを操作するようにSystem.Data.SQLiteの表を操作することができます。System.Data.SQLiteデータベース共通類はデータベースに対する操作状況に対して、以下のいくつかの状況に分けられます。データベースファイルを作成します。DataTableを返しますData Readerを返します添削を実行して、影響を受ける行数を返します。クエリーを実行して、第1行の第1列に戻ります。ライブラリ内のすべての表を返します。System.Data.SQLiteには格納プロセスが存在しないため、すべての操作はテキストベースのSQL文であり、SQL注入を回避するためにパラメータ化されたSQL文を使用しています。コードは以下の通りです。
 
using System;
using System.Data;
using System.Data.Common;
using System.Data.SQLite;
namespace SQLiteQueryBrowser
{
/// <summary>
/// : System.Data.SQLite 。
/// :zhoufoxcn( )
/// :2010-04-01
/// Blog:http://zhoufoxcn.blog.51cto.com or http://blog.csdn.net/zhoufoxcn
/// Version:0.1
/// </summary>
public class SQLiteDBHelper
{
private string connectionString = string.Empty;
/// <summary>
///
/// </summary>
/// <param name="dbPath">SQLite </param>
public SQLiteDBHelper(string dbPath)
{
this.connectionString = "Data Source=" + dbPath;
}
/// <summary>
/// SQLite
/// </summary>
/// <param name="dbPath"> SQLite </param>
public static void CreateDB(string dbPath)
{
using (SQLiteConnection connection = new SQLiteConnection("Data Source=" + dbPath))
{
connection.Open();
using (SQLiteCommand command = new SQLiteCommand(connection))
{
command.CommandText = "CREATE TABLE Demo(id integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE)";
command.ExecuteNonQuery();
command.CommandText = "DROP TABLE Demo";
command.ExecuteNonQuery();
}
}
}
/// <summary>
/// SQLite , 。
/// </summary>
/// <param name="sql"> SQL </param>
/// <param name="parameters"> , SQL </param>
/// <returns></returns>
public int ExecuteNonQuery(string sql, SQLiteParameter[] parameters)
{
int affectedRows = 0;
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
connection.Open();
using (DbTransaction transaction = connection.BeginTransaction())
{
using (SQLiteCommand command = new SQLiteCommand(connection))
{
command.CommandText = sql;
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
affectedRows = command.ExecuteNonQuery();
}
transaction.Commit();
}
}
return affectedRows;
}
/// <summary>
/// , SQLiteDataReader
/// </summary>
/// <param name="sql"> </param>
/// <param name="parameters"> SQL , SQL </param>
/// <returns></returns>
public SQLiteDataReader ExecuteReader(string sql, SQLiteParameter[] parameters)
{
SQLiteConnection connection = new SQLiteConnection(connectionString);
SQLiteCommand command = new SQLiteCommand(sql, connection);
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
connection.Open();
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
/// <summary>
/// , DataTable
/// </summary>
/// <param name="sql"> </param>
/// <param name="parameters"> SQL , SQL </param>
/// <returns></returns>
public DataTable ExecuteDataTable(string sql, SQLiteParameter[] parameters)
{
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
DataTable data = new DataTable();
adapter.Fill(data);
return data;
}
}
}
/// <summary>
/// ,
/// </summary>
/// <param name="sql"> </param>
/// <param name="parameters"> SQL , SQL </param>
/// <returns></returns>
public Object ExecuteScalar(string sql, SQLiteParameter[] parameters)
{
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
DataTable data = new DataTable();
adapter.Fill(data);
return data;
}
}
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public DataTable GetSchema()
{
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
connection.Open();
DataTable data=connection.GetSchema("TABLES");
connection.Close();
//foreach (DataColumn column in data.Columns)
//{
// Console.WriteLine(column.ColumnName);
//}
return data;
}
}
}
}
は実際には、汎用クラスの大批な量でデータを挿入するのは少し遅いです。これはSystem.Data.SQLiteでの操作が指定されていない場合、一つのものとして扱われます。大量の記録が必要であれば、明示的に物事を作成することを提案します。そうすれば、操作ごとに一つのものを作るよりも効率が高くなります。最終的にVSL 2008が提供する機能を利用して、中のデータを見ることができます。 説明が必要なのは、System.Data.SQLiteにおけるデータタイプの規定が厳格であり、Test 3テーブルを作成するSQL文から見ると、テーブルのaddDate、UpdateTime、TimeはそれぞれDateTime、Date、Timeタイプフィールドであるが、実際に私達が挿入する時はこの規定に従っていない。まとめSystem.Data.SQLiteは確かに小型で精悍なデータベースであり、SQLiteのパッケージとしては(SQLiteはAndroidなどの携帯電話にJavaを利用してアクセスできます)、まだ小型です。性能が高く、メモリ消費が小さいです。インストールする必要がないです。唯一の欠点は比較していないGUI(グラフィカルユーザーインターフェース)であるが、それだけで小型化できる。実際の開発ではグラフィックユーザーインターフェースがないと不便かもしれません。VSを使ってデータを見たり操作したりできます。 データ量が10万本以下のアプリケーションを開発するなら、System.Data.SQLiteを使ってみたらいいかもしれません。
&噫13;
if($!=jQuery/&嚖13;
ドル=jQuery.noConflit()&13;
}&{13;
var isLogirld=false;&萶13;
var cb_blogId=61575;13;
var cb_entryId=1886835;13;
var cb_blogApp=「ymmt」13;
var cb_blogUserGid="2 c 432671-70 b 2-de 11-ba 8 f-010 cf 0 cd 104 b"13;
var cb_ntryCreatedDate='2010/11/24 17:36:00';13;