第一次写文章,而且还是个新手,请各位多多见谅。
程序效率不一定高,但是能保证是对的。
只是写出来供那些和我一样也是新手,并且还在找寻方法的兄弟们。
请各位前辈们多多指点,谢谢啦。
存储图片
1.
AddImage.aspx
添加个<input type="file">标签 和<img>标签
<input type="file" runat="server" id="file" onchange="javascript:document.all('img').src=this.value"/>
<img id="img" alt="图片"/>
作用:通过input标签选择本地的图片后,图片可以在img标签上预览
2.
AddImage.cs
private int imageSize;//存储本地图片的长度
private string imageType;//存储本地图片的类型
private Stream imageStream;//存储本地图片的流
imageSize = file.PostedFile.ContentLength;
imageType = file.PostedFile.ContentType;
imageStream= file.PostedFile.InputStream;
byte[] ImageContent;//创建一个byte数组用于存储图片的内容
ImageContent = new byte[imageSize];//数组长度为图片的长度
int intStatus = imageStream.Read(ImageContent, 0, imageSize);
// 写入数据库,我用的是存储过程
SqlParameter[] parameters = {
new SqlParameter("@Img", SqlDbType.Image),
new SqlParameter("@ImgType", SqlDbType.NVarChar,50)};
parameters[0].Value = ImageContent;
parameters[1].Value = imageType;
string strSql = "PRO_InsertImg";
//存储过程为:
//@Img Image,
//@ImgType nvarchar(50)
//As
//Begin
//Insert into dbo.ImgInfor
//Values
//(@Img, @ImgType)
//End
SqlConnection con = new SqlConnection(conStr);//conStr是连接数据库字符串
con.Open();
SqlCommand cmd = new SqlCommand(strSql, con);
cmd.CommandType = CommandType.StoredProcedure;
if (parameters != null)
{
foreach (SqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
}
try
{
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception SQLExe)
{
Response.Write("添加失败!原因:" + SQLExe.ToString());
}
--------------------------------------------------------------------------------------------------------------------------------------------
显示图片
1.
新建一个ShowImage.aspx
添加Image控件用于显示数据
<asp:Image id="Img" Width="100px" Height="100px" runat="server" ></asp:Image>
不过因为Image控件不能显示二进制的图片,所以再新建一个Img.aspx用于显示图片。
再将此Image控件的ImageUrl指向Img.aspx
这样就可以在Image控件上显示数据库中的图片了
2.
ShowImage.cs
Img.ImageUrl = "Img.aspx";//把Image控件的Url指向Img.aspx页面
3.
Image.cs
string strSql;
strSql = "select top 1 Img,ImgType from ImgInfor";
// 读取数据库的数据
SqlConnection con = new SqlConnection(conStr);//conStr是连接数据库字符串
SqlDataAdapter adapter = new SqlDataAdapter(strSql , con);
DataSet ds=new DataSet();
adapter.Fill(ds,"ImgInfor");
DataTable table = ds.Tables["ImgInfor"];
Response.ContentType = table.Rows[0].ItemArray[0].ToString().Trim();
Response.BinaryWrite((byte[])table.Rows[0].ItemArray[1]);
以上
上面写的代码都没有在函数中,大家要使用的话,可以截取相应的部分添加到自己的函数或是事件中即可
本文介绍了如何在ASP.NET(C#)应用中向数据库添加并显示图片。首先,通过input标签选择图片并在img标签预览,然后利用Stream将图片内容读取并存储到数据库中。在显示图片时,创建一个专门的Img.aspx页面,通过Image控件结合数据库查询来显示存储的图片。
向数据库添加及显示图片&spm=1001.2101.3001.5002&articleId=5926883&d=1&t=3&u=8b151a46b7514f74ab284ffd0191e3be)
8753

被折叠的 条评论
为什么被折叠?



