把图片转换成二进制文件然后 在数据库中进行存取

首先数据库中的图片字段 应该是imgage 字段。

 

 using System.IO;
using System.Drawing;

 

把图片转换成二进制文件 并存入数据库中

 

      HttpPostedFile hp = this.FileUpload1.PostedFile;
        int fileLength = hp.ContentLength;
         filebyte = new byte[fileLength];
        Stream filestream = hp.InputStream;
        filestream.Read(filebyte, 0, fileLength);
        string sql = "insert into Article(Title) values(@fs)";
        Maticsoft.DBUtility.DbHelperSQL.ExecuteSqlInsertImg(sql, filebyte);
       

直接用sql 语句不行 只能通过传参 在执行sql

 

 /// <summary>
        /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
        /// </summary>
        /// <param name="strSQL">SQL语句</param>
        /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
        /// <returns>影响的记录数</returns>
        public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand(strSQL, connection);
                System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@fs", SqlDbType.Image);
                myParameter.Value = fs;
                cmd.Parameters.Add(myParameter);
                try
                {
                    connection.Open();
                    int rows = cmd.ExecuteNonQuery();
                    return rows;
                }
                catch (System.Data.SqlClient.SqlException e)
                {
                    throw e;
                }
                finally
                {
                    cmd.Dispose();
                    connection.Close();
                }
            }
        }

 

实现对存入数据库里图片的读取。不过需要至少两个页面

一个页面打印出来a。aspx 一个页面用img src 引用 b。aspx

打印页面a。aspx

 

byte[] filebyte2;
        DataSet ds = Maticsoft.DBUtility.DbHelperSQL.Query("select top 1 * from Article");
        filebyte2 = (byte[])ds.Tables[0].Rows[0]["Title"];
        Response.BinaryWrite(filebyte2);

 

b.aspx

 

<img src="a.aspx" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值