C# - 簡易SQLiteクラス

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


Linux - ワイルドカードを使用したファイル指定

  1. * ※任意の文字列
  2. ? ※任意の1文字
  3. [...] ※[]内に含まれている任意の1文字
  4. [!...] ※[]内に含まれていない任意の1文字
  5. {〜} ※{}内に含まれている任意の1文字


Linux - パス指定

パス表現で、先頭に置かれた'/'はルートディレクトリを示します。
途中に置かれた'/'はディレクトリの区切り記号になります。


Linux - 特殊ディレクト

  1. / ※ルートディレクト
  2. . ※カレントディレクト
  3. .. ※親ディレクト
  4. ^ ※ホームディレクト
  5. ^- ※直前にいたディレクト
  6. ~ユーザ名 ※指定ユーザのホームディレクト