Error happens when two threads try to execute the following code at the same time. Both queries can be simple SELECT * from query1table/query2table queries. My code hasn't changed, I only updated v1.0.74 to v1.0.76. I didn't encounter such exceptions using earlier version.
DataTable table = new DataTable();
using (SQLiteCommand cmd = _connection.CreateCommand()) {
cmd.CommandText = query;
using (SQLiteDataReader reader = cmd.ExecuteReader()) {
table.Load(reader);
reader.Close();
} }
An item with the same key has already been added. mscorlib
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at System.Data.SQLite.SQLiteConvert.TypeNameToDbType(String Name)
at System.Data.SQLite.SQLiteDataReader.GetSQLiteType(Int32 i)
at System.Data.SQLite.SQLiteDataReader.GetSchemaTable(Boolean wantUniqueInfo, Boolean wantDefaultValue)
at System.Data.SQLite.SQLiteDataReader.GetSchemaTable()
at System.Data.ProviderBase.SchemaMapping..ctor(DataAdapter adapter, DataSet dataset, DataTable datatable, DataReaderContainer dataReader, Boolean keyInfo, SchemaType schemaType, String sourceTableName, Boolean gettingData, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DataAdapter.FillMappingInternal(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 schemaCount, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DataAdapter.FillMapping(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 schemaCount, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at System.Data.Common.LoadAdapter.FillFromReader(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at System.Data.DataTable.Load(IDataReader reader, LoadOption loadOption, FillErrorEventHandler errorHandler)
at System.Data.DataTable.Load(IDataReader reader)
<hr /><i>mistachkin added on 2011-10-15 10:15:44 UTC:</i><br />
Fixed by check-in [13a3981ec0].
|