У меня странная проблема с DataReader. Я использую OdbcClient с устаревшей системой rdbms.
Я отправляю следующую команду в базу данных.
select Col1, Col2, Col3 from Table1 where Col2 = 'Val1';
Однако в некоторых случаях, когда я повторяю его через DataReader, как показано ниже.
IDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
// Get the values from reader
int col2 = reader.GetValue(1);
}
Я получаю значение Col2 как DBNull, несмотря на то, что у меня есть значение в столбце Col2 в базе данных. Я получаю значения Col1 и Col3 правильно. Какие могут быть возможные причины такого поведения?
Обновление : это исправлено, если я вызываю cmd.Prepare () перед вызовом cmd.ExecuteQuery (). Пожалуйста, кто-нибудь может объяснить это поведение?