ASP.NET(C#)向数据库添加及显示图片

本文介绍了如何在ASP.NET(C#)应用中向数据库添加并显示图片。首先,通过input标签选择图片并在img标签预览,然后利用Stream将图片内容读取并存储到数据库中。在显示图片时,创建一个专门的Img.aspx页面,通过Image控件结合数据库查询来显示存储的图片。

第一次写文章,而且还是个新手,请各位多多见谅。

程序效率不一定高,但是能保证是对的。

只是写出来供那些和我一样也是新手,并且还在找寻方法的兄弟们。

请各位前辈们多多指点,谢谢啦。

 

存储图片

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]);

以上

 

上面写的代码都没有在函数中,大家要使用的话,可以截取相应的部分添加到自己的函数或是事件中即可

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值