я работаю над приложением CLR SQL, после интеграции с SQL, я получаю эту ошибку (на английском языке он работает, но проблемы при добавлении юникодов к dictionory):Элемента с тем же ключом уже был добавлен в словаре
**Msg 6522, Level 16, State 2, Line 1
A .NET Framework error occurred during execution of user-defined routine or aggregate "SqlCompare":
System.ArgumentException: An item with the same key has already been added.
System.ArgumentException:
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 Translate_Class_NUM..ctor()
at StringPercentageCompare..ctor()
at UserDefinedFunctions.SqlComparison()**
here is my code in c#
private Dictionary<string, string> MyDictionary;
//private string[,] MyArray;
public Translate_Class_NUM()
{
MyDictionary.Add("?", "01");
MyDictionary.Add("?", "02");
MyDictionary.Add("?", "03");
MyDictionary.Add("?", "04");
MyDictionary.Add("?", "05")
}
и SQL кода сервера является CREATE ASSEMBLY DBDB_DeDuplication АВТОРИЗАЦИЯ DBO из 'E: \ Проекты \ DBDB_DeDuplication \ DBDB_DeDuplication \ OBJ \ Debug \ DBDB_DeDuplication.dll' с PERMISSION_SET = SAFE GO
CREATE FUNCTION SqlCompare() RETURNS nvarchar (50) AS EXTERNAL NAME DBDB_DeDuplication.UserDefinedFunctions.SqlComparison; GO
SELECT dbo.SqlCompare(); GO
заранее спасибо
Вы не можете добавить несколько значений к одному и тому же ключу. 'MyDictionary.Add ("? "," 01 ");' помещает строку значений '' 01 '' под ключ ''? "', И следующая строка не будет работать, потому что она использует тот же ключ ''? "'. Вместо этого вы можете использовать синтаксис 'MyDictionary ["?] = "01" ', и это не будет ошибкой, но вы бы перезаписали ваши предыдущие значения под этим ключом. Что-то не так с вашим использованием словаря - вы переключили свои значения и ключи? –
S понял ...? в смысле другой символ в unicode .. вот его отображение как? только .. но в коде я использую разные символы unicode – Santhosh
S. он работает для словаря .add ("a", "01") dictionary.add ("b", "02"), но не работает для unicode Chars like ... dictionary.add ("ಅ", "01") dictionary.add ("ಇ", "02") – Santhosh