вы можете переписать свой код гораздо более безопасным способом, например так:
using(var sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["myDB"].ConnectionString))
{
sqlConn.Open();
SqlCommand sqlComm = new SqlCommand("SELECT Price FROM Pricing WHERE FoodID = 1", sqlConn);
using(var reader = sqlComm.ExecuteReader())
{
while (reader.Read())
{
var price1 = reader["Price"];
}
}
}
, так что вы уверены, что, что бы ни случилось, считыватель и соединение будут закрыты и утилизированы для вас.если вы отлаживаете этот код, вы увидите, какой тип объекта будет храниться в переменной price1 во время выполнения, и затем вы можете при необходимости привести его к этому типу, потому что, если ваше приведение к float было неудачным, я думаю, вы не получилиплавающий корректно из читателя.
SqlDataReader имеет и другие методы для извлечения данных, если вы уверены, что Price - это fload, вы можете использовать метод reader.GetSingle
, например, если это int, вы можете использовать reader.GetInt
и т. Д.