В моей базе данных значение NextStatDistanceTime имеет значение float. Когда линия «float time = reader.GetFloat(0);
» та или иная строчка, это дает ошибкуКак получить значение float с помощью SqlDataReader?
система недействительного исключение литого
Как я могу получить значение с плавающей точкой из SQL команды в этом коде?
Вот мой код:
using (SqlConnection conn = new SqlConnection(@"<myconnectionstring>"))
{
float totaltime = 0;
for (int i = startStationIndex; i < endStationIndex; i++)
{
SqlCommand command = new SqlCommand("SELECT NextStatDistanceTime FROM [MetroDatabase].[dbo].[MetroStation] WHERE StationIndex = " + i + "", conn);
try
{
conn.Open();
command.ExecuteNonQuery();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
float time = reader.GetFloat(0);
totaltime = totaltime + time;
conn.Close();
}
}
}
catch (Exception ex)
{
result = ex.Message;
Console.WriteLine(ex.Message);
}
}
}
Какое это изделие? –
@JonSkeet он упомянул об этом, его «float» в базе данных. –
@RanjitSingh: Упс, пропустил это. В этом случае я действительно ожидаю, что все будет хорошо ... Я предполагаю, что это не * действительно * плавающий в базе данных. Было бы интересно узнать результат вызова 'reader.GetValue (0)' - какой тип? –