csharp-sqlite

this is pure C# SQLite

usage

var dbfile = $@"{Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)}\testdb.sqlite.db";
var cnstr = $@"Version=3,uri=file:{dbfile}";

if (File.Exists(dbfile)) {
	File.Delete(dbfile);
}
using (var cn = /*(IDbConnection)*/new SqliteConnection(cnstr)) {
	cn.Open();
	using (var cmd = cn.CreateCommand()) {
		cmd.CommandText = "create table testtable (no integer, id text, name text,age integer)";
		cmd.ExecuteNonQuery();
	}

	Func<int> getCount = () => {
		using (var cmd = cn.CreateCommand()) {
			cmd.CommandText = "select count(*) from testtable";
			return int.Parse(cmd.ExecuteScalar().ToString());
		}
	};
	
	var gets = getCount();
	var tr = cn.BeginTransaction();
	using (var cmd = cn.CreateCommand()) {
		var sw = new Stopwatch();
		sw.Start();
		foreach (var i in Enumerable.Range(gets, 10000)) {
			cmd.CommandText = $@"
			insert into testtable (no,id,name,age)
			values({i}, 'test{i}', 'test{i}', {i + 1})";
			cmd.ExecuteNonQuery();
		}
		$"{sw.Elapsed.TotalMilliseconds / 1000} s".Dump();
	}
	tr.Commit();

	Console.WriteLine( getCount());
}

forked from