首先数据库中的图片字段 应该是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" />