我被这个演员转换拒绝彻底难倒了。
基本上,我正在尝试从数据库中检索数据并将其存储到列表中 - 它工作正常,直到图像部分。
错误一直说这是类型转换错误,但我不知道如何纠正转换。T-T
这是它的片段代码:
列出学生 = 新列表((;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ItemUpload"].ConnectionString);
string selectQuery = "select * from upload";
SqlCommand com = new SqlCommand(selectQuery, conn);
SqlDataReader dr;
try
{
conn.Open();
dr = com.ExecuteReader();
while (dr.Read())
{
student.Add(new Item()
{
ID = dr.GetInt32(dr.GetOrdinal("Id")),
itemImage = dr.GetByte(dr.GetOrdinal("itemname")),
itemName = dr.GetString(dr.GetOrdinal("itemname")),
itemDesc = dr.GetString(dr.GetOrdinal("itemdesc")),
itemQuantity = dr.GetInt32(dr.GetOrdinal("qituantity"))
});
}
dr.Close();
}
这是 itemimage 的获取者和设置器(在一个名为 Item 的单独类中(,如果它有帮助的话。
public byte itemImage { get; set; }
我试过Convert.ToByte,但它不起作用,可悲的是。就像我是通往解决方案的大门,但它超出了我的掌握范围。
我很确定 Getordinal 从我搜索的内容中作为 Int 返回,但我不知道如何从中解决铸造问题。
感谢您对此的帮助!
- 非常,悲伤的家伙
student.Add(new Item()
{
ID = dr.GetInt32(dr.GetOrdinal("Id")),
itemImage = (byte)dr.GetInt32(dr.GetOrdinal("itemimage")),
itemName = dr.GetString(dr.GetOrdinal("itemname")),
itemDesc = dr.GetString(dr.GetOrdinal("itemdesc")),
itemQuantity = dr.GetInt32(dr.GetOrdinal("qituantity"))
});