コード例 #1
0
        private void BindStatement(SQLite.Net.Interop.IDbStatement statement, int argIndex, JToken arg)
        {
            switch (arg.Type)
            {
            case JTokenType.Undefined:
            case JTokenType.Null:
                _sqliteAPI.BindNull(statement, argIndex);
                break;

            case JTokenType.Boolean:
                _sqliteAPI.BindInt(statement, argIndex, arg.ToObject <bool>() ? 1 : 0);
                break;

            case JTokenType.Integer:
                _sqliteAPI.BindInt64(statement, argIndex, arg.ToObject <long>());
                break;

            case JTokenType.Float:
                _sqliteAPI.BindDouble(statement, argIndex, arg.ToObject <double>());
                break;

            case JTokenType.String:
                _sqliteAPI.BindText16(statement, argIndex, arg.ToObject <string>(), -1, NegativePointer);
                break;

            default:
                _sqliteAPI.BindText16(statement, argIndex, arg.ToObject <string>(), -1, NegativePointer);
                break;
            }
        }
コード例 #2
0
        private Dictionary <string, object> ExtractRow(SQLite.Net.Interop.IDbStatement statement)
        {
            var row         = new Dictionary <string, object>();
            var columnCount = _sqliteAPI.ColumnCount(statement);

            for (var i = 0; i < columnCount; i++)
            {
                var columnName  = _sqliteAPI.ColumnName16(statement, i);
                var columnValue = ExtractColumn(statement, i);
                if (columnValue != null)
                {
                    row[columnName] = columnValue;
                }
            }
            return(row);
        }
コード例 #3
0
        private object ExtractColumn(SQLite.Net.Interop.IDbStatement statement, int columnIndex)
        {
            var columnType = _sqliteAPI.ColumnType(statement, columnIndex);

            switch (columnType)
            {
            case SQLite.Net.Interop.ColType.Integer:
                return(_sqliteAPI.ColumnInt64(statement, columnIndex));

            case SQLite.Net.Interop.ColType.Float:
                return(_sqliteAPI.ColumnDouble(statement, columnIndex));

            case SQLite.Net.Interop.ColType.Blob:
                return(_sqliteAPI.ColumnBlob(statement, columnIndex));

            case SQLite.Net.Interop.ColType.Text:
                return(_sqliteAPI.ColumnText16(statement, columnIndex));

            case SQLite.Net.Interop.ColType.Null:
            default:
                return(null);
            }
        }