指定的强制转换无效(字节数据库、获取字节)



我被这个演员转换拒绝彻底难倒了。

基本上,我正在尝试从数据库中检索数据并将其存储到列表中 - 它工作正常,直到图像部分。

错误一直说这是类型转换错误,但我不知道如何纠正转换。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"))
                });

最新更新