いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

System.Data.SQLiteのサンプル

以下メモ書きです。
System.Data.SQLiteの動作確認をしていたのでそれをメモしておきます。


System.Data.SQLiteについては http://d.hatena.ne.jp/gsf_zero1/20070713/p1 を参照願います。


[サンプル]

// vim:set ts=4 sw=4 et ws is nowrap ft=cs:
using System;
using System.Data;
using System.Data.Common;
using System.IO;

namespace Tmp{

    public class SQLiteSample{

        const string PROVIDER_NAME = "System.Data.SQLite";
        const string DATABASE_FILE = "mydb.db";
        const string TABLE_NAME    = "test_table";

        static void Main(){

            File.Delete(DATABASE_FILE);

            DbProviderFactory factory = DbProviderFactories.GetFactory(PROVIDER_NAME);

            using(DbConnection conn = factory.CreateConnection()){
                conn.ConnectionString = string.Format("Data Source={0}", DATABASE_FILE);

                conn.Open();

                using(DbCommand command = conn.CreateCommand()){
                    command.CommandText = string.Format("create table {0} (id int, name varchar(100), age int, primary key(id))", TABLE_NAME);

                    command.ExecuteNonQuery();
                }

                using(DbTransaction tran = conn.BeginTransaction()){

                    using(DbCommand command = conn.CreateCommand()){
                        for(int i = 0; i < 100; i++){
                            command.CommandText = string.Format("insert into {0} values ({1}, '{2}', {3})", TABLE_NAME, i, "gsf_zero" + i, (i + 10));
                            command.ExecuteNonQuery();
                        }
                    }

                    tran.Commit();
                }
            }
        }
    }
}