指定的强制转换无效(字节数据库,GetBytes)

时间:2018-01-27 10:45:33

标签: c# asp.net database casting

我完全被这次转换拒绝所困扰。

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

错误一直说它是类型转换错误,但我不知道如何纠正转换。 T形

以下是它的代码段:

列出student = new List();

        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的getter和setter(在一个名为Item的单独类中),如果有帮助的话。

public byte itemImage {get;组; }

我已经尝试过Convert.ToByte,但遗憾的是它不起作用。这就像我是解决方案所在的大门,但它不在我的掌握之中。

我很确定Getordinal从我搜索的内容中返回Int,但我不知道如何解决这个问题。

感谢你的帮助!

- 非常伤心的人

1 个答案:

答案 0 :(得分:0)

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"))
                });