In meiner Datenbank habe ich NextStatDistanceTime Wert als Float. Wenn "float time = reader.GetFloat(0);
" Linie excecuted, gibt es einen Fehler vonWie Float-Wert mit SqlDataReader erhalten?
System ungültig Guss Ausnahme
Wie kann ich Float-Wert von SQL-Befehl in diesem Code erhalten?
Hier ist mein Code:
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);
}
}
}
Was ist der Typ in der Datenbank? –
@JonSkeet er hat es erwähnt, seine "float" in der Datenbank. –
@RanjitSingh: Whoops, verpasst das. In diesem Fall würde ich wirklich erwarten, dass es in Ordnung ist ... Meine Vermutung ist, dass es nicht wirklich ein Float in der Datenbank ist. Es wäre interessant, das Ergebnis des Aufrufs von 'reader.GetValue (0)' zu kennen - welcher Typ ist das? –