// private function for creating Column Names // Return number of colums read private int ReadColumnNames(Vdbe vm, DataTable table) { String columnName = ""; int columnType = 0; // returns number of columns returned by statement int columnCount = CSSQLite.sqlite3_column_count(vm); object[] columnValues = new object[columnCount]; try { // reads columns one by one for (int i = 0; i < columnCount; i++) { columnName = CSSQLite.sqlite3_column_name(vm, i); columnType = CSSQLite.sqlite3_column_type(vm, i); switch (columnType) { case CSSQLite.SQLITE_INTEGER: { // adds new integer column to table table.Columns.Add(columnName, Type.GetType("System.Int64")); break; } case CSSQLite.SQLITE_FLOAT: { table.Columns.Add(columnName, Type.GetType("System.Double")); break; } case CSSQLite.SQLITE_TEXT: { table.Columns.Add(columnName, Type.GetType("System.String")); break; } case CSSQLite.SQLITE_BLOB: { table.Columns.Add(columnName, Type.GetType("System.byte[]")); break; } default: { table.Columns.Add(columnName, Type.GetType("System.String")); break; } } } } catch { return(0); } return(table.Columns.Count); }