2015-05-12 4 views
0

Я новичок в ASP.NET, и я пытаюсь создать WebShop. Проблема в том, что когда я пытаюсь выполнить метод, я получаю сообщение об ошибке.ASP.NET Web-Form C# Указанное приведение недействительно

Мне интересно, есть ли проблема в таблицах SQL? Вот метод, который производит ошибку

public List<Product> productRead(int Product_ID) 
      { 

       IDataReader data = SqlHelper.ExecuteReader(con, "Product_Read", Product_ID); 
       List<Product> prod = new List<Product>(); 
       while(data.Read()) 
       { 
        Product pr = new Product(); 
        pr.Product_ID=(int)data["Product_ID"]; 
        pr.Product_Name=data["Product_Name"]as string; 
        pr.Product_Description=data["Product_Description"]as string; 
        pr.Product_Image =(char)data["Product_Image"]; 
        pr.Product_Price=(int)data["Product_Price"]; 
        pr.Product_Count=(int)data["Product_Count"]; 
        prod.Add(pr); 
       } 
       return prod; 
      } 

И это, как я исполняю выше метод:

List<Product> pr = db.Instance.productRead(12); 
       if (pr != null) 
       { 
        foreach (Product product in pr) 
        { 
         Panel prPanel = new Panel(); 
         ImageButton imgB = new ImageButton(); 
         Label lbName = new Label(); 
         Label lblPrice = new Label(); 

         imgB.ImageUrl = "~/Images/" + product.Product_Image; 
         imgB.PostBackUrl = "~/Home.aspx?id=" + product.Product_ID; 
         lbName.Text = product.Product_Name; 
         lblPrice.Text = "$" + product.Product_Price; 

         prPanel.Controls.Add(imgB); 
         prPanel.Controls.Add(new Literal { Text = "<br/>" }); 
         prPanel.Controls.Add(lbName); 
         prPanel.Controls.Add(new Literal { Text = "<br/>" }); 
         prPanel.Controls.Add(lblPrice); 
         pnlProducts.Controls.Add(prPanel); 
        } 


       } 
       else 
       { 
        pnlProducts.Controls.Add(new Literal { Text = "No product found !" }); 
       } 

и ошибка:

Specified cast is not valid 
+0

Ошибка здесь: pr.Product_Image = (char) data ["Product_Image"]; – cata92

+0

Какая строка является недействительным? – Slappywag

ответ

0

Из этой строки в коде

imgB.ImageUrl = "~/Images/" + product.Product_Image; 

Похоже, вы ждете data["Product_Image"] быть типа string, поэтому, возможно, изменить свой оттенок:

pr.Product_Image =(string)data["Product_Image"]; 

Однако, было бы полезно добавить следующие строки:

var productImage = data["Product_Image"]; 
Type productImageType = productImage.getType(); 

Затем вы можете отлаживать и выполнять свой код и находить фактический тип data["Product_Image"]. Затем вы можете исправить бросок в ломаной линии до того, что должно быть.

+0

Спасибо за ответ, он работает с var, я не получаю никаких ошибок, но на странице изображение не появляется. – cata92

+0

Спасибо, я забыл изменить класс Product, тип Product_Image, я был char и я делаю это строкой, теперь я работаю: D. – cata92

Смежные вопросы