void RunStatement(string statement) { IntPtr stmt = SQLite3.Prepare2(db, statement); var result = SQLite3.Step(stmt); SQLite3.CheckResult(db, result); SQLite3.Finalize(stmt); }
private void BindConditions(IntPtr stmt) { foreach (var cond in conditions) { int paramIndex = SQLite3.BindParameterIndex(stmt, cond.Key); var bindresult = SQLite3.GetBindFunc(SQLite3.GetSQLType(cond.Value.GetType()))(stmt, paramIndex, cond.Value); SQLite3.CheckResult(db, bindresult); } }
public void CreateTable <T>(string name) { var fis = typeof(T).GetFields(); var fieldList = ArrayUtils.ConvertAll(fis, x => x.Name + " " + SQLite3.GetSQLType(x.FieldType)); var stringFieldList = string.Join(", ", fieldList); IntPtr stmt = SQLite3.Prepare2(db, "CREATE TABLE IF NOT EXISTS " + name + " (rowid INTEGER PRIMARY KEY AUTOINCREMENT, " + stringFieldList + ") "); var result = SQLite3.Step(stmt); SQLite3.CheckResult(db, result); SQLite3.Finalize(stmt); }
public void Insert <T>(string table, T values) { var fis = typeof(T).GetFields(); var fieldList = ArrayUtils.ConvertAll(fis, x => x.Name); var valueList = ArrayUtils.ConvertAll(fis, x => "@" + x.Name); string SQL = "INSERT INTO " + table + " (" + string.Join(", ", fieldList) + ") VALUES ( " + string.Join(", ", valueList) + " )"; IntPtr stmt = SQLite3.Prepare2(db, SQL); foreach (var fi in fis) { int paramIndex = SQLite3.BindParameterIndex(stmt, "@" + fi.Name); var bindresult = SQLite3.GetBindFunc(SQLite3.GetSQLType(fi.FieldType))(stmt, paramIndex, fi.GetValue(values)); SQLite3.CheckResult(db, bindresult); } var stepresult = SQLite3.Step(stmt); SQLite3.CheckResult(db, stepresult); SQLite3.Finalize(stmt); }
public SQLiteConnection(string conn) { var result = SQLite3.Open(conn, out db, SQLiteFlags.SQLITE_OPEN_CREATE | SQLiteFlags.SQLITE_OPEN_READWRITE, IntPtr.Zero); SQLite3.CheckResult(db, result); }