ArgumentException от DataRow.Item () в турецкой установке Windows Server 2008 - PullRequest
0 голосов
/ 05 октября 2011

Наше программное обеспечение было установлено на (клиентский сайт) Window Server 2008 R2 Foundation в Турции (поэтому языковой стандарт настроен на турецкий язык, поэтому все меню и сообщения отображаются на турецком языке).Мы используем SQL Server 2005 Express.Сортировка базы данных SQL_Latin1_General_CP1_CI_AI (как и на других наших англоязычных сайтах).

Наш код запрашивает базу данных простым запросом: select * form tableName where callid='variable' (callid - наш первичный ключ, однако имя столбца в базе данныхэто CallID, тип столбца varchar(60)), используя метод SqlDataAdapter.Fill() для заполнения нашего нетипизированного DataSet.

Мы получаем объект DataRow из DataSet.Tables[0].Rows[0].Мы передаем этот DataRow объект другим методам и используем DataRow.Item (String) для получения значений столбцов.У нас есть несколько столбцов, которые мы получаем их значения без проблем.Однако для одного конкретного столбца мы получаем

ArgumentException: <column name> column does not belong to table Table

Этот столбец является нашим столбцом callid!Когда мы меняем имя столбца в базе данных на callid или CalliD, мы не получаем исключения.Я видел эту статью под названием Представьте турецкий язык, который я выпускаю , и, насколько я понимаю, проблема в том, что адрес статьи - это когда collation = TURKISH_CI_AS.

Что мне здесь не хватает?Буду признателен за любую полезную информацию.

Спасибо, Илан

1 Ответ

0 голосов
/ 05 октября 2011

Я предполагаю, что проблема вообще не возникает на стороне базы данных , а когда код local (DataSet) ищет ваш столбец.

Самое простое исправление, вероятно, заключается в использовании значения столбца ordinal вместо имени. В целях диагностики я предлагаю вам просмотреть имена столбцов, возвращаемые DataTable.Columns, и попробовать различные подходы, чтобы сопоставить имя без учета регистра / культуры. Если вы не знаете порядковый номер заранее, возможно, вы захотите найти его таким образом динамически, если не удается найти DataSet: (

...