System.Data.SQLite

Login
This project makes use of Eagle, provided by Mistachkin Systems.
Eagle: Secure Software Automation
Ticket Hash: e22d357a213a4cd450434a0130ee75421efb3946
Title: Parameter name is case-sensitivity doesn't match database behavior
Status: Closed Type: Code_Defect
Severity: Minor Priority: Medium
Subsystem: Statement Resolution: Fixed
Last Modified: 2023-05-31 19:31:00
Version Found In: 1.0.117.0
User Comments:
anonymous added on 2023-05-28 12:43:14: (text/x-markdown)
I've discovered that System.Data.SQLite treats parameter name as case-insensitive which leads to lost(replaced) command parameter when command contains several parameters which differ just by case.

SQLite itself treats parameters as case-sensitive (and also works this way with Microsoft.Data.Sqlite).

Issue caused by use of StringComparison.OrdinalIgnoreCase instead of StringComparison.Ordinal in SQLiteParameterCollection.IndexOf method:

https://system.data.sqlite.org/index.html/file?name=System.Data.SQLite/SQLiteParameterCollection.cs

mistachkin added on 2023-05-29 23:32:15: (text/x-markdown)
Thanks for the report.

After some research, it seems that the SQLiteStatement class needs a minor
change as well.

I'll try to get this fix included in the 1.0.118.0 release.

mistachkin added on 2023-05-31 19:31:00: (text/x-markdown)
Fixed on trunk, with tests.