1.将图片以二进制存入数据库
2.读取二进制图片在页面显示
3.设置Image控件显示从数据库中读出的二进制图片
4.GridView中ImageField以URL方式显示图片
5.GridView显示读出的二进制图片
====================
1.将图片以二进制存入数据库
C#
--------------------------
//保存图片到数据库
protected void Button1_Click(object sender, EventArgs e)
{
//图片路径
string strPath = "~/photo/03.JPG";
string strPhotoPath = Server.MapPath(strPath);
//读取图片
FileStream fs = new System.IO.FileStream(strPhotoPath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] photo = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
//存入
SqlConnection myConn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=sa");
string strComm = " INSERT INTO personPhoto(personName, personPhotoPath, personPhoto) ";
strComm += " VALUES('wangwu', '" + strPath + "', @photoBinary )";
SqlCommand myComm = new SqlCommand(strComm, myConn);
myComm.Parameters.Add("@photoBinary", SqlDbType.Binary,photo.Length);
myComm.Parameters["@photoBinary"].Value = photo;
myConn.Open();
myComm.ExecuteNonQuery();
myConn.Close();
}
VB.NET
'保存图片到数据库
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
'图片路径
Dim strPath As String = "~/photo/03.JPG"
Dim strPhotoPath As String = Server.MapPath(strPath)
'读取图片
Dim fs As FileStream = New System.IO.FileStream(strPhotoPath, FileMode.Open, FileAccess.Read)
Dim br As BinaryReader = New BinaryReader(fs)
Dim photo() As Byte = br.ReadBytes(CType(fs.Length,Integer))
br.Close
fs.Close
'存入
Dim myConn As SqlConnection = New SqlConnection("Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=sa")
Dim strComm As String = " INSERT INTO personPhoto(personName, personPhotoPath, personPhoto) "
strComm = (strComm + (" VALUES('wangwu', '" _
+ (strPath + "', @photoBinary )")))
Dim myComm As SqlCommand = New SqlCommand(strComm, myConn)
myComm.Parameters.Add("@photoBinary", SqlDbType.Binary, photo.Length)
myComm.Parameters("@photoBinary").Value = photo
myConn.Open
myComm.ExecuteNonQuery
myConn.Close
End Sub
2.读取二进制图片在页面显示
C#
--------------------------
//读取图片
SqlConnection myConn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=sa");
string strComm = " SELECT personPhoto FROM personPhoto WHERE personName='wangwu' ";
SqlCommand myComm = new SqlCommand(strComm, myConn);
myConn.Open();
SqlDataReader dr = myComm.ExecuteReader();
while (dr.Read())
{
byte[] photo = (byte[])dr["personPhoto"];
this.Response.BinaryWrite(photo);
}
dr.Close();
myConn.Close();
或
SqlConnection myConn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=sa");
SqlDataAdapter myda = new SqlDataAdapter(" SELECT personPhoto FROM personPhoto WHERE personName='wangwu' ", myConn);
DataSet myds = new DataSet();
myConn.Open();
myda.Fill(myds);
myConn.Close();
//
byte[] photo = (byte[])myds.Tables[0].Rows[0]["personPhoto"];
this.Response.BinaryWrite(photo);
VB.NET
Dim myConn As SqlConnection = New SqlConnection("Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=sa")
Dim strComm As String = " SELECT personPhoto FROM personPhoto WHERE personName='wangwu' "
Dim myComm As SqlCommand = New SqlCommand(strComm, myConn)
myConn.Open
Dim dr As SqlDataReader = myComm.ExecuteReader
While dr.Read
Dim photo() As Byte = CType(dr("personPhoto"),Byte())
Me.Response.BinaryWrite(photo)
End While
dr.Close
myConn.Close
或
Dim myConn As SqlConnection = New SqlConnection("Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=sa")
Dim myda As SqlDataAdapter = New SqlDataAdapter(" SELECT personPhoto FROM personPhoto WHERE personName='wangwu' ", myConn)
Dim myds As DataSet = New DataSet
myConn.Open
myda.Fill(myds)
myConn.Close
Dim photo() As Byte = CType(myds.Tables(0).Rows(0)("personPhoto"),Byte())
Me.Response.BinaryWrite(photo)
3.设置Image控件显示从数据库中读出的二进制图片
C#
---------------------------------------------
SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=TestDB;User ID=sa;Password=sa");
SqlDataAdapter myda = new SqlDataAdapter(" SELECT personPhoto FROM personPhoto WHERE personName='wangwu' ", myConn);
DataSet myds = new DataSet();
myConn.Open();
myda.Fill(myds);
myConn.Close();
//
byte[] photo = (byte[])myds.Tables[0].Rows[0]["personPhoto"];
//图片路径
string strPath = "~/photo/wangwu.JPG";
string strPhotoPath = Server.MapPath(strPath);
//保存图片文件
BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate));
bw.Write(photo);
bw.Close();
//显示图片
this.Image1.ImageUrl = strPath;
VB.NET
Dim myConn As SqlConnection = New SqlConnection("Data Source=192.168.0.36;Initial Catalog=TestDB;User ID=sa;Password=sa")
Dim myda As SqlDataAdapter = New SqlDataAdapter(" SELECT personPhoto FROM personPhoto WHERE personName='wangwu' ", myConn)
Dim myds As DataSet = New DataSet
myConn.Open
myda.Fill(myds)
myConn.Close
Dim photo() As Byte = CType(myds.Tables(0).Rows(0)("personPhoto"),Byte())
Dim strPath As String = "~/photo/wangwu.JPG"
Dim strPhotoPath As String = Server.MapPath(strPath)
Dim bw As BinaryWriter = New BinaryWriter(File.Open(strPhotoPath, FileMode.OpenOrCreate))
bw.Write(photo)
bw.Close
'显示图片
Me.Image1.ImageUrl = strPath
4.GridView中ImageField以URL方式显示图片
----------------------------
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="personName" HeaderText="姓名" />
<asp:ImageField DataImageUrlField="personPhotoPath"
HeaderText="图片">
</asp:ImageField>
</Columns>
</asp:GridView>
后台直接绑定即可
5.GridView显示读出的二进制图片
------------------------------
//样板列
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="personName" HeaderText="姓名" />
<asp:ImageField DataImageUrlField="personPhotoPath"
HeaderText="图片">
</asp:ImageField>
<asp:TemplateField HeaderText="图片">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
//绑定
C#
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex < 0)
return;
// System.ComponentModel.Container
string strPersonName = (string)DataBinder.Eval(e.Row.DataItem, "personName");
Image tmp_Image = (Image)e.Row.Cells[2].FindControl("Image1");
if (!System.Convert.IsDBNull(DataBinder.Eval(e.Row.DataItem, "personPhoto")))
{
//
byte[] photo = (byte[])DataBinder.Eval(e.Row.DataItem, "personPhoto");
//图片路径
string strPath = "~/photo/" + strPersonName.Trim() + ".JPG";
string strPhotoPath = Server.MapPath(strPath);
//保存图片文件
BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath, FileMode.OpenOrCreate));
bw.Write(photo);
bw.Close();
//显示图片
tmp_Image.ImageUrl = strPath;
}
}
VB.NET
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If (e.Row.RowIndex < 0) Then
Return
End If
' System.ComponentModel.Container
Dim strPersonName As String = CType(DataBinder.Eval(e.Row.DataItem, "personName"),String)
Dim tmp_Image As Image = CType(e.Row.Cells(2).FindControl("Image1"),Image)
If Not System.Convert.IsDBNull(DataBinder.Eval(e.Row.DataItem, "personPhoto")) Then
'
Dim photo() As Byte = CType(DataBinder.Eval(e.Row.DataItem, "personPhoto"),Byte())
'G
Dim strPath As String = ("~/photo/" _
+ (strPersonName.Trim + ".JPG"))
Dim strPhotoPath As String = Server.MapPath(strPath)
'XG
Dim bw As BinaryWriter = New BinaryWriter(File.Open(strPhotoPath, FileMode.OpenOrCreate))
bw.Write(photo)
bw.Close
'>:G
tmp_Image.ImageUrl = strPath
End If
End Sub
分享到:
相关推荐
更快的解决图片二进制数据存储的问题,了解二进制流的强大威力。
读取图片的二进制流,存到数据库中读取图片的二进制流,存到数据库中读取图片的二进制流,存到数据库中读取图片的二进制流,存到数据库中
用C++ connector实现mysql以二进制格式将图片存储到数据库以及从数据库获取图片并显示,亲测通过,请放心使用,如有问题可留言给我。
非常好用的MDB二进制数据库读取解密软件
图片存储到数据库保存二进制文件,并在DATAGRIDVIEW中显示出来
图片以二进制的形式存储到数据库中和显示 图片以二进制的形式存储到数据库中和显示
c++链接Access数据库用二进制存储图像,并能显示图像等信息,很好的例子。
将数据库中以二进制流的形式存储的图片,通过程序还原成图片保存在本地
用C#写的关于图像的二进制存储 图片在数据库中存储 二进制存储的图片显示出来
实现了对上传的图片进行缩放显示,并将图片转换为二进制流(将其保存到数据库中,及实现了将图片存储到数据库中),之后通过动态页面显示生产的图片,避免了上传图片显示的路径问题
通过二进制数据流的方式,读写图片,把图片存入数据库,再从数据库读取出来显示
/**/////根据图片文件的路径使用文件流打开,并保存为byte[] FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法 byte[] byData = new byte[fs.Length]; fs.Read(byData, 0, ...
此程序是一个用于将图片以二进制流的形式保存到数据库,然后读取显示到picturebox上的小程序。
WPF SQLite存储与读取二进制图片
类似与很多网站的注册功能以及相册展示功能 写了这个小列子 数据库 设计很简单就一个简单的表 两个字段 id和Image类型的content字段(用来存放图片用二进制读取的内容)还有一个存储过程(我喜欢用存储过程)数据库...
C_图片转换成二进制流并且保存到sql_server数据库,或者存储。
Delphi XE10 二进制图片存储和读取的代码示例,二进制图片操作。主要就是流操作,代码注释里讲了几个注意的细节,附加测试数据库;Image 默认支持BMP JPG对象需显示的从文件流中初始化,Assign 在Image加载对象前 ...
C# ##从数据库中取二进制图片文件存入硬盘.rar 前提是数据库里面有2进制图片
asp.net 将图片存储到数据库 读取数据库二进制文件
用ASP.NET实现图片存储到数据库,并从数据库中显示所存储的图片。