W mojej bazie danych mam wartość NextStatDistanceTime jako float. Kiedy linia „float time = reader.GetFloat(0);
” ścięci, daje błądJak uzyskać wartość zmiennoprzecinkową za pomocą SqlDataReader?
nieprawidłowej wyjątkiem szarego
Jak mogę uzyskać wartość pływaka z polecenia SQL w tym kodzie?
Oto mój kod:
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);
}
}
}
Jaki jest typ w bazie danych? –
@JonSkeet wspomniał o tym, jego "float" w bazie danych. –
@RanjitSingh: Ups, przegapiłem to. W takim przypadku naprawdę bym się spodziewał, że wszystko będzie dobrze ... Domyślam się, że to nie jest * tak naprawdę * zmienna w bazie danych. Byłoby interesujące poznać wynik wywołania 'reader.GetValue (0)' - jaki to jest typ? –