我遇到从浮动SQL数据类型显示到我的文本框的问题。到目前为止,我可以获得字符串以显示正常以及int数据类型。当谈到花车或甚至小数时,它想要投入适合,我不完全确定原因。这是我得到的错误:
无法将类型'float'隐式转换为'int'。一个明确的 存在转换(你错过了演员吗?)
如何强制ships.Height = (float)shipReader["HeightTest"];
成为一个浮点而不是一个int,因为如果我只是将它保留为int,它仍然不会显示它而不会抛出错误。在运行它时会弹出一条错误消息,“指定的强制转换无效”。
SqlDataReader shipReader =
selectCommand.ExecuteReader(CommandBehavior.SingleRow);
if(shipReader.Read())
{
Ships ships = new Ships();
ships.Role = shipReader["Role"].ToString();
ships.Description = shipReader["Description"].ToString();
ships.NullCargoMass = (int)shipReader["NullCargoMass"];
ships.Height = (float)shipReader["HeightTest"];
return ships;
}
答案 0 :(得分:2)
ships.Height = Convert.ToSingle(shipReader["HeightTest"]);
答案 1 :(得分:1)
使用SqlDataReader
对象提供的辅助方法GetFloat
。
shipReader.GetFloat(shipReader.GetOrdinal("HeightTest"))