【发布时间】:2021-12-28 03:22:26
【问题描述】:
我有一个名为 tbl_studentdetails 的表,其中存储了学生创建个人资料时的详细信息。在该表格中,学生也应该插入个人资料图片。为此,我在我的表中创建了另外 3 个字段,称为 image_name(短文本) img_size(数字), img_data(Ole 对象)。 图像保存在访问数据库中,但是当我尝试在不同的页面上显示它时,它没有被显示。显示没有错误,并且图像数据也正确地从表中获取,但没有显示在屏幕上。
这是我通过将图像转换为字节数组将图像保存在数据库中时的代码。
protected void btn_create_Click(object sender, EventArgs e)
{
HttpPostedFile postedfile = FileUpload1.PostedFile;
String filename = Path.GetFileName(postedfile.FileName);
String fileextension = Path.GetExtension(filename);
int filesize = postedfile.ContentLength;
if(fileextension.ToLower()==".jpg" || fileextension.ToLower() == ".png")
{
Stream stream = postedfile.InputStream;
BinaryReader binaryReader = new BinaryReader(stream);
byte[] bytes = binaryReader.ReadBytes((int)stream.Length);
con.Open();
OleDbCommand cmd = new OleDbCommand("insert into studentdetails(s_name,age,phone_no,city,state,email,qualification,field,years_exp,description,image_name,img_size,img_data) values('" + txt_name.Text + "'," + txt_age.Text + "," + txt_phone.Text + ",'" + txt_city_stud.Text + "','" + txt_state_stud.Text + "','" + txt_mail.Text + "','" + ddl_qualifiy.SelectedValue + "','" + txt_field.Text + "'," + txt_years.Text + ",'" + txt_extra.Text + "','" + filename + "'," + filesize+",'"+bytes+"')");
cmd.Connection = con;
cmd.ExecuteNonQuery();
Response.Write("<script>alert('Profile created');</script>");
con.Close();
// Session["create_smail"] = txt_mail.Text;
Response.Redirect("~/profilepage.aspx?email=" + txt_mail.Text);
}
这是当我尝试在页面加载时检索并在学生的个人资料页面上显示它时的代码
create_email = Request.QueryString["email"];
OleDbCommand cmd = new OleDbCommand("select img_data from studentdetails where email='" + create_email + "'", con);
byte[] bytes = (byte[])cmd.ExecuteScalar();
string strbase64 = Convert.ToBase64String(bytes, 0, bytes.Length);
image1.ImageUrl = "data:image/jpg;base64," + strbase64;
image1是要显示图片的asp:image标签的id。
谁能帮帮我,因为我必须尽快提交一个项目。
【问题讨论】:
标签: c# asp.net .net database ms-access