Last active
October 7, 2019 19:31
-
-
Save t3knoid/227ab91cb75bded23fca27c5ceb406e9 to your computer and use it in GitHub Desktop.
A handy class to interface with SQLite databases
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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