Skip to content

Instantly share code, notes, and snippets.

@t3knoid
Last active October 7, 2019 19:31
Show Gist options
  • Save t3knoid/227ab91cb75bded23fca27c5ceb406e9 to your computer and use it in GitHub Desktop.
Save t3knoid/227ab91cb75bded23fca27c5ceb406e9 to your computer and use it in GitHub Desktop.
A handy class to interface with SQLite databases
using System;
using System.Data.SQLite;
using System.Text;
class SQLite {
static string connectionFormat = "Data Source={0};Version=3; FailIfMissing=True; Foreign Keys=True;";
static public SQLiteResponse Select(string databasePath, string sql) {
string connectionString = String.Format(connectionFormat, databasePath);
SQLiteResponse sqliteResponse = new SQLiteResponse();
try {
sqliteResponse.connection = new SQLiteConnection(connectionString);
sqliteResponse.connection.Open();
sqliteResponse.command = new SQLiteCommand(sql, sqliteResponse.connection);
sqliteResponse.reader = sqliteResponse.command.ExecuteReader();
sqliteResponse.success = true;
}
catch(SQLiteException ex) {
sqliteResponse.success = false;
System.Windows.Forms.MessageBox.Show(String.Format("Error in Select. {0}", ex.Message));
sqliteResponse.message = ex.Message;
sqliteResponse.stacktrace = ex.StackTrace;
}
return sqliteResponse;
}
public string GetData(SQLiteDataReader reader, string column) {
switch (Type.GetTypeCode(reader.GetFieldType(reader.GetOrdinal(column)))) {
case TypeCode.Boolean:
return reader.GetBoolean(reader.GetOrdinal(column)).ToString();
case TypeCode.Byte:
return reader.GetByte(reader.GetOrdinal(column)).ToString();
case TypeCode.Char:
return reader.GetChar(reader.GetOrdinal(column)).ToString();
case TypeCode.DateTime:
return reader.GetDateTime(reader.GetOrdinal(column)).ToString("yyyy/mm/dd HH:mm:ss");
case TypeCode.Decimal:
return reader.GetDecimal(reader.GetOrdinal(column)).ToString();
case TypeCode.Double:
return reader.GetDouble(reader.GetOrdinal(column)).ToString();
case TypeCode.Int16:
return reader.GetInt16(reader.GetOrdinal(column)).ToString();
case TypeCode.Int32:
return reader.GetInt32(reader.GetOrdinal(column)).ToString();
case TypeCode.Int64:
return reader.GetInt64(reader.GetOrdinal(column)).ToString();
case TypeCode.String:
return reader.GetString(reader.GetOrdinal(column));
default:
return "";
}
}
}
public class SQLiteResponse {
public bool success;
public SQLiteConnection connection;
public SQLiteDataReader reader;
public SQLiteCommand command;
public string message;
public string stacktrace;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment