1.IDBHelper.cs
interface IDBHelper { void initDB(); void closeDB(); void ExecSQL(String execSql); DataTable ExecQuery(String querySql); }
2.ZDBHelperSQLLite.cs
class ZDBHelperSQLLite : IDBHelper { String dataSource = ""; SQLiteConnection connection = null; public void initDB(String dbPath) { dataSource = "Data Source =" + dbPath(); connection = new SQLiteConnection(dbFile); connection.Open(); initTables(); CreateFileInfoTable(); } public void closeDB() { connection.Close(); } private void initTables() { String sqlCreate01 = "CREATE TABLE IF NOT EXISTS visitlog(user_id varchar(64), visit_path varchar(256), visit_time integer);"; SQLiteCommand cmdCreateTable = new SQLiteCommand(connection); cmdCreateTable.CommandText = sqlCreate01; cmdCreateTable.ExecuteNonQuery(); } public void ExecSQL(String execSql) { SQLiteTransaction transaction = connection.BeginTransaction(); SQLiteCommand cmdExec = new SQLiteCommand(execSql, connection, transaction ); cmdExec.ExecuteNonQuery(); transaction.Commit(); } public DataTable ExecQuery(String querySql) { SQLiteCommand cmdQuery = new SQLiteCommand(querySql, connection); SQLiteDataReader reader = cmdQuery.ExecuteReader(); DataTable datatable = new DataTable(); DataTable schemaTable = reader.GetSchemaTable(); foreach (DataRow myRow in schemaTable.Rows) { DataColumn myDataColumn = new DataColumn(); myDataColumn.DataType = myRow.GetType(); myDataColumn.ColumnName = myRow[0].ToString(); datatable.Columns.Add(myDataColumn); } schemaTable = null; while (reader.Read()) { DataRow myDataRow = datatable.NewRow(); for (int i = 0; i < reader.FieldCount; i++) { myDataRow[i] = reader[i].ToString(); } datatable.Rows.Add(myDataRow); myDataRow = null; } reader.Close(); return datatable; } }