■C# - 簡易SQLiteクラス
#region [usingディレクティブ]
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using System.Data.SQLite;
#endregion [usingディレクティブ]
namespace TestSQLiteForm
{
/// <summary>
/// SQLiteDbAccessクラス
/// </summary>
public class SQLiteDbAccess
{
#region [変数]
/// <summary>
/// コネクションオブジェクト
/// </summary>
private SQLiteConnection connection = null;
/// <summary>
/// トランザクションオブジェクト
/// </summary>
private SQLiteTransaction transaction = null;
/// <summary>
/// 接続文字列
/// </summary>
private string connectionString = string.Empty;
/// <summary>
/// クエリー
/// </summary>
private string quearyString = string.Empty;
#endregion [変数]
#region [プロパティ]
/// <summary>
/// コネクション
/// </summary>
public SQLiteConnection Connection
{
get
{
return this.connection;
}
}
/// <summary>
/// クエリー
/// </summary>
public string QuearyString
{
get { return this.quearyString; }
set { this.quearyString = value; }
}
#endregion [プロパティ]
#region [処理]
#region コンストラクタ
/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="argDatabaseFileName">DBファイル名</param>
public SQLiteDbAccess(string argDatabaseFileName)
{
//接続文字列取得
this.connectionString = this.GetConnectionString(argDatabaseFileName);
}
#endregion
#region 接続文字列取得
/// <summary>
/// 接続文字列取得
/// </summary>
/// <param name="argDatabaseFileName">DBファイル名</param>
/// <returns>接続文字列</returns>
private string GetConnectionString(string argDatabaseFileName)
{
return "Data Source=" + argDatabaseFileName;
}
#endregion
#region DB接続
/// <summary>
/// DB接続
/// </summary>
public void Connect()
{
this.connection = new SQLiteConnection();
this.connection.ConnectionString = this.connectionString;
this.connection.Open();
}
#endregion
#region DB切断
/// <summary>
/// DB切断
/// </summary>
public void Close()
{
if (null != this.connection)
{
if (ConnectionState.Open == this.connection.State)
{
this.connection.Close();
this.connection.Dispose();
}
}
}
#endregion
#region 参照系SQL実行
/// <summary>
/// 参照系SQL実行
/// </summary>
/// <returns>参照結果SQLiteDataReader</returns>
public SQLiteDataReader ExecuteReader()
{
using (SQLiteCommand cmd = new SQLiteCommand(this.quearyString,this.connection))
{
return cmd.ExecuteReader();
}
}
#endregion
#region 参照系SQL実行
/// <summary>
/// 参照系SQL実行
/// </summary>
/// <returns>参照結果データテーブル</returns>
public DataTable Execute()
{
using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(this.quearyString,this.connection))
{
DataSet ds = new DataSet();
adapter.Fill(ds);
if (null != ds.Tables[0])
{
return ds.Tables[0];
}
else
{
return new DataTable();
}
}
}
#endregion
#region 更新系SQL実行
/// <summary>
/// 更新系SQL実行
/// </summary>
/// <returns>影響を受けた行数</returns>
public int ExecuteNonQuery()
{
using (SQLiteCommand cmd = new SQLiteCommand(this.quearyString,this.connection))
{
return cmd.ExecuteNonQuery();
}
}
#endregion
#region 単一の値を取得実行
/// <summary>
/// 単一の値を取得実行
/// </summary>
/// <returns>結果セットの最初の行の最初の列。結果セットが空の場合は、null 参照。</returns>
public long ExecuteScalar()
{
using (SQLiteCommand cmd = new SQLiteCommand(this.quearyString, this.connection))
{
return (long)cmd.ExecuteScalar();
}
}
#endregion
#region トランザクション開始
/// <summary>
/// トランザクション開始
/// </summary>
public void BeginTransaction()
{
if (null != this.connection)
{
this.transaction = this.connection.BeginTransaction(IsolationLevel.ReadCommitted);
}
}
#endregion
#region コミット
/// <summary>
/// コミット
/// </summary>
public void Commit()
{
if (null != this.transaction)
{
this.transaction.Commit();
}
}
#endregion
#region ロールバック
/// <summary>
/// ロールバック
/// </summary>
public void Rollback()
{
if (null != this.transaction)
{
this.transaction.Rollback();
}
}
#endregion
#endregion [処理]
}
}
■Linux - ファイル作成
[haru@host haru]$ echo aaa > test1.txt
[haru@host haru]$ echo bbb >> test1.txt
■Linux - サイズ0のファイルを作成
[haru@host haru]$ touch test2.txt
- * ※任意の文字列
- ? ※任意の1文字
- [...] ※[]内に含まれている任意の1文字
- [!...] ※[]内に含まれていない任意の1文字
- {〜} ※{}内に含まれている任意の1文字
■Linux - パス指定
パス表現で、先頭に置かれた'/'はルートディレクトリを示します。
途中に置かれた'/'はディレクトリの区切り記号になります。