Click here to Skip to main content
15,867,835 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I saved image into sql data base of datat type image(Binary) and its successfully saved .. now i need to retrive it in my datalist .. after i bound it into my datalist in my markup .. i got this error

Unable to cast object of type 'System.Int32' to type 'System.Byte[]'.

here is my behind code

C#
if (!(this.IsPostBack))
       {
           // For News DataList
           prepareConnection();
           _command.CommandText = "select top 5 * from News ORDER BY id DESC";

           _adp = new SqlDataAdapter();
           _tbl = new System.Data.DataTable();
           _adp.SelectCommand = _command;
           _adp.Fill(_tbl);
           SqlDataReader DataReader = _command.ExecuteReader();
           DataReader.Read();
           Response.BinaryWrite((byte[])DataReader[0]);
           DataReader.Close();
           dlNews.DataSource = _tbl;
           dlNews.DataBind();
       }


     protected void prepareConnection()
   {
       _connection = new SqlConnection(@"Data Source=******\localhost;Initial Catalog=******;User ID=sa;Password=****");
       _connection.Open();
       _command = new SqlCommand();
       _command.Connection = _connection;

   }


and here is DataList markup :


ASP.NET
<asp:DataList ID="dlNews" runat="server">
                    <ItemTemplate>
                        <a href='./NewsView.aspx?ID=<%#Eval("ID") %>' style="text-decoration: none;">
                            <div id="123">
                                <a href='NewsView.aspx?ID=<%#Eval("ID") %>' style="text-decoration: none;">
                                    <asp:Label ID="lblTitle" runat="server" Style="font-size: 15px; font-weight: bold;
                                        line-height: 20px;" Text='<%# Eval("Title").ToString().Length>70 ? (Eval("Title") as string).Substring(0,70) : Eval("Title") %>'></asp:Label>
                                </a>
                                <div id="image" style="clear: both; float: right; margin: 0 5px 10px 10px;">
                                    <a href='NewsView.aspx?ID=<%#Eval("img") %>' style="text-decoration: none;">
                                        <asp:Image ID="Image1" runat="server" Height="111px" ImageUrl="~/images/epica.jpg"
                                            Style="border: 1px solid black;" />
                                    </a>
                                </div>
                                <div style="margin-removed 20px; padding-removed 5px;">
                                    <asp:Label ID="lblContent" runat="server" Text='<%# Eval("Contect").ToString().Length>150 ? (Eval("Contect") as string).Substring(0,150) : Eval("Contect") %>'></asp:Label>
                                </div>
                                <div style="position: relative; border: 1px solid black; float: left; background-color: #4EAAF5;
                                    margin-left: 3px;">
                                    <a href='NewsView.aspx?ID=<%#Eval("ID") %>' style="color: white; font-size: 15px;
                                        font-weight: bold; text-decoration: none; padding: 4px;">إقرأ المزيد</a>
                                </div>
                            </div>
                            <div id="Separator" style="width: 600px; height: 2px; border-top: 1px solid #CCCCCC;
                                margin: 5px 17px 5px 5px; clear: both;">
                            </div>
                        </a>
                    </ItemTemplate>
                </asp:DataList>
Posted
Comments
Dholakiya Ankit 3-Oct-13 3:35am    
I think problem with your image binding put your code where you are saving image?
Richard MacCutchan 3-Oct-13 3:44am    
What is the definition of column 0 of the table?

1 solution

Hey there,

I think, its this line
C#
Response.BinaryWrite((byte[])DataReader[0]);


Are you sure that the first column is your image column, DataReader[0]?

You could try the actual column name instead of index, DataReader["YourImageColumnName"]

Hope it helps,

Azee....
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900