2014-01-20 2 views
0

Я новичок в ASP.net и имею некоторые проблемы с отображением изображений. Мой код дизайнера такой же резкий.Показать изображения из базы данных ASP.Net

<div id="directory-logo-wrapper" class="floatright"> 
    <table id="wrapper1" runat="server"> 
     <tr> 
      <td> 
       <img src="../images/companylogo.png" alt="LogoWrapper" /> 
       <%--<asp:Image ID="Image1" runat="server" Visible="true" alt="LogoWrapper" />--%> 
      </td> 
     </tr> 
    </table> 
</div> 

Мой код за кодом приведен ниже.

protected void ShowImageFile(object sender, EventArgs e) 
{ 
    byte[] bytes = {}; 
    bytes = (byte[])GetData("SELECT UploadedLogo FROM Projects WHERE ProjectId =" + id).Rows[0]["UploadedLogo"]; 
    string base64String = Convert.ToBase64String(bytes, 0, bytes.Length); 
    //Image1.ImageUrl = "data:image/png;image/jpg;base64," + base64String; 
} 

private DataTable GetData(string query) 
{ 
    DataTable dt = new DataTable(); 
    string constr = ConnectionInfo.GetConnectionString(); 

    using (SqlConnection con = new SqlConnection(constr)) 
    { 
     using (SqlCommand cmd = new SqlCommand(query)) 
     { 
      using (SqlDataAdapter sda = new SqlDataAdapter()) 
      { 
       cmd.CommandType = CommandType.Text; 
       cmd.Connection = con; 
       sda.SelectCommand = cmd; 
       sda.Fill(dt); 
      } 
     } 
     return dt; 
    } 
} 

Проблема: как установить таблицу: wrapper1 IMG SRC в коде позади, потому что это не показано в коде позади. Я попытался сделать с Image1, но также не получал доступа к коду.

Пожалуйста, помогите мне.

Спасибо, Raja

+0

Вы можете использовать Asp: Изображение с ImageUrl know –

ответ

0

Попробуйте Как это

<div id="directory-logo-wrapper" class="floatright"> 
    <table id="wrapper1" runat="server"> 
     <tr> 
      <td> 
       <img id="myimage" runat="server" src="../images/companylogo.png" /> 
      </td> 
     </tr> 
    </table> 
</div> 

Вы можете получить доступ к Src из кода За

Попробуйте как этот

    'Get byte array from image file in the database with basic query 
        SqlDataAdapter myAdapter1 = new SqlDataAdapter("Select [logo] FROM [dbo].[tblCompanyInfo]", GlobalUser.currentConnectionString); 
        DataTable dt = new DataTable(); 
        myAdapter1.Fill(dt); 

        foreach (DataRow row in dt.Rows) 
        { 
         // Get the byte array from image file 
         byte[] imgBytes = (byte[])row["logo"]; 

         // If you want convert to a bitmap file 
         TypeConverter tc = TypeDescriptor.GetConverter(typeof(Bitmap)); 
         Bitmap MyBitmap = (Bitmap)tc.ConvertFrom(imgBytes); 


         string imgString = Convert.ToBase64String(imgBytes); 
         // Set the source with data:image/bmp 
         myimage.Src = String.Format("data:image/Bmp;base64,{0}\"", imgString); 

        } 

EDIT

Доступ Изображения внутри GridView

private string m_ConcatUrl; 

protected void gridView_RowDataBound(Object sender, GridViewRowEventArgs args) 
{ 
    if(args.Row.RowType == DataControlRowType.DataRow) 
    { 
     Image imgCtrl = (Image) args.Row.FindControl("imgCtrl"); 
     imgCtrl.ImageUrl = m_ConcatUrl; 
    } 
} 

(или)

частная строка m_ConcatUrl;

protected void gridView_RowDataBound(Object sender, GridViewRowEventArgs args) 
{ 
    if(args.Row.RowType == DataControlRowType.DataRow) 
    { 
     HtmlImage img = (HtmlImage) args.Row.FindControl("imgCtrl"); 
     imgCtrl.Src= m_ConcatUrl; 
    } 
} 
+0

OP ясно говорит, что изображение хранится ** в базе данных ** - не в его файловой системе .... –

+0

@marc_s Извините. Теперь я изменил, что –

+0

myimage недоступен. – Raja

0

Вы можете попробовать следующий способом:

HTML:

 <div id="directory-logo-wrapper" class="floatright"> 
     <table id="wrapper1" runat="server"> 
      <tr> 
       <td> 
        <img src='<%# ImageUrl(ProjectId) %>' alt="LogoWrapper" /> 
        <%--<asp:Image ID="Image1" runat="server" Visible="true" alt="LogoWrapper" />--%> 
       </td> 
      </tr> 
     </table> 
    </div> 

Код За:

private string ImageUrl(int ProjectId) 
    { 
    byte[] bytes = {}; 
     bytes = (byte[])GetData("SELECT UploadedLogo FROM Projects WHERE ProjectId =" + ProjectId).Rows[0]["UploadedLogo"]; 
     string base64String = Convert.ToBase64String(bytes, 0, bytes.Length); 
    return "data:image/png;image/jpg;base64," + base64String; 
     //Image1.ImageUrl = "data:image/png;image/jpg;base64," + base64String; 
    } 

private DataTable GetData(string query) 
{ 
    DataTable dt = new DataTable(); 
    string constr = ConnectionInfo.GetConnectionString(); 

using (SqlConnection con = new SqlConnection(constr)) 
{ 
    using (SqlCommand cmd = new SqlCommand(query)) 
    { 
     using (SqlDataAdapter sda = new SqlDataAdapter()) 
     { 
      cmd.CommandType = CommandType.Text; 
      cmd.Connection = con; 
      sda.SelectCommand = cmd; 
      sda.Fill(dt); 
     } 
    } 
    return dt; 
} 
} 

Надеется, что это помогает.

+0

Это дает мне ошибку при загрузке страницы. Ошибка: CS1026:) ожидается – Raja

+0

Я отредактировал свой ответ. :) –

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