{"record":{"id":"7dcf2473bddee702","repo":"tursodatabase/turso","slug":"calledonnullvalue-ordinal","errorCode":null,"errorMessage":"CalledOnNullValue(ordinal)","messagePattern":"CalledOnNullValue\\(ordinal\\)","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"bindings/dotnet/src/Turso.Data.Sqlite/SqliteDataReader.cs","lineNumber":999,"sourceCode":"    {\n        EnsureHasManagedCurrentRow();\n        ValidateOrdinal(ordinal);\n        var value = CurrentManagedResult.Rows[_managedRowIndex][ordinal] ?? DBNull.Value;\n        if (value != DBNull.Value\n            && IsGuidType(CurrentManagedResult.Columns[ordinal].DataTypeName)\n            && value is string or byte[])\n        {\n            return ToGuid(value);\n        }\n\n        return value;\n    }\n\n    private object GetManagedTypedValue(int ordinal)\n    {\n        var value = GetManagedValue(ordinal);\n        if (value == DBNull.Value)\n            throw new InvalidOperationException(Properties.Resources.CalledOnNullValue(ordinal));\n\n        return value;\n    }\n\n    private object? GetFirstManagedNonNullValue(int ordinal)\n    {\n        ValidateOrdinal(ordinal);\n        foreach (var row in CurrentManagedResult.Rows)\n        {\n            var value = row[ordinal];\n            if (value is not null && value != DBNull.Value)\n                return value;\n        }\n\n        return null;\n    }\n\n    private DataTable GetManagedSchemaTable()","sourceCodeStart":981,"sourceCodeEnd":1017,"githubUrl":"https://github.com/tursodatabase/turso/blob/6c7252267988c76e632af00a671e4b9788dfae13/bindings/dotnet/src/Turso.Data.Sqlite/SqliteDataReader.cs#L981-L1017","documentation":"Sentinel thrown by GetManagedTypedValue when a strongly-typed getter (GetInt32, GetString, etc.) hits a NULL column on the managed result set. The CalledOnNullValue(ordinal) resource string marks a null-value access; the faulting input is the ordinal of a column whose value is DBNull.","triggerScenarios":"Thrown at bindings/dotnet/src/Turso.Data.Sqlite/SqliteDataReader.cs:999 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check IsDBNull(ordinal) before calling the typed getter","Use the nullable/weakly-typed GetValue and handle DBNull.Value yourself","Fix the query with IFNULL/COALESCE so the column cannot be NULL when a non-null type is required"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c7252267988c76e632af00a671e4b9788dfae13","analyzedAt":"2026-09-06T07:15:26.990Z","contentChangedAt":"2026-09-06T07:15:26.990Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}