Я занимаюсь разработкой приложения на C# и базой данных MS Access 2007.
В myTable есть 3 столбца: число (целое число), имя (длинный текст), дата (дата);
Я пытаюсь прочитать значение (целое число) из myTable и пытаюсь сохранить его в TOT для выполнения других задач. Но у меня по-прежнему возникает ошибка при TOT = reader.GetInt32(x);
, говорящем «Исключение недопустимого приведения».
При использовании немедленного окна проблема, похоже, заключается в reader.GetInt32(x)
.
Вот код:
OdbcConnection conn = new OdbcConnection("Dsn=My_Access_Database; Pwd=1234");
OdbcCommand cmd;
OdbcDataReader reader;
int TOT = 0;
conn.Open();
cmd = conn.CreateCommand();
cmd.CommandText = "Select SUM(Number) AS col1 From myTable WHERE Name = '" + label1.Text + "' AND Date=#" + label2.Text + "#;";
reader = cmd.ExecuteReader();
while (reader.Read())
{
int x= reader.GetOrdinal("col1");
if (reader.IsDBNull(x))
{
label3.Text = "0.0";
label4.Text = "0.0";
label5.Text = "0.0";
}
else
{
TOT = reader.GetInt32(x);
//Other things
}
}
Когда я выполняю запрос в Access, он работает и дает мне значение, которое я хочу.