2017-02-12 70 views
0

我想插入/删除,使用asp.net更新sql数据库中的图像。我插入的代码是:用asp.net插入/更新/从sql数据中删除图像

Stream strm = FileUpload1.PostedFile.InputStream; 
     BinaryReader br = new BinaryReader(strm); 
     byte[] img = br.ReadBytes(Convert.ToInt32(strm.Length)); 
     imgDetail.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(img, 0, img.Length); 
     imgDetail.Visible = true; 
     try 
     { 
      cmd = new SqlCommand("insert into Persons (id,Name,Surname,Address,Phone,Picture,Department) values (@id,@Name,@Surname,@Address,@Phone,@img,@Department)",con); 
      cmd.Parameters.AddWithValue("id", txtId.Text); 
      cmd.Parameters.AddWithValue("Name", txtName.Text); 
      cmd.Parameters.AddWithValue("Surname", txtSurname.Text); 
      cmd.Parameters.AddWithValue("Address", txtAddress.Text); 
      cmd.Parameters.AddWithValue("Phone", txtPhone.Text); 
      cmd.Parameters.AddWithValue("img", img); 
      cmd.Parameters.AddWithValue("Department", Department.Text); 

      con.Open(); 
      cmd.ExecuteNonQuery(); 
      con.Close(); 

我觉得出事了与添加的图像,也许我这样做不对。现在当我在我的gridview的一些记录点击,在文本框记录显示的所有数据,但我不能在图像箱中显示图像。我怎样才能做到这一点? 这是在文本框displaing数据的一部分:

 foreach (GridViewRow row in GridView1.Rows) 
     { 
      if (row.RowIndex == GridView1.SelectedIndex) 
      { 
       GridViewRow row1 = GridView1.SelectedRow; 
       txtId.Text = row.Cells[0].Text; 
       txtName.Text = row.Cells[1].Text; 
       txtSurname.Text = row.Cells[2].Text; 
       txtAddress.Text = row.Cells[3].Text; 
       txtPhone.Text = row.Cells[4].Text; 
       Department.Text = row.Cells[5].Text; 
       Image.?????? 

回答

0

“图像”控制是标准<img> HTML标签周围只是一个包装。所以显然它没有任何二进制属性,您可以设置为一个字节数组。

但你用“数据”uri去。

这里有一个主意,你:

Image.ImageUrl = "data:image/jpg;base64," + Convert.ToBase64String((byte[])imagedata); 
相关问题