图片二进制数据库的存取和读取<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
DataBase Table Desing:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 82.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5Cwei_zhu%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata></shape>
-Function:
1. 导入图像文件,以二进制形式存入数据库表。
2. 从数据库表读取二进制信息,返原显示在页面的datagrid 中
<shape id="_x0000_i1026" style="WIDTH: 411pt; HEIGHT: 405pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5Cwei_zhu%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png"></imagedata></shape>
---Web.Config---
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- application specific settings -->
<appSettings>
<add key="uid" value="sa" />
<add key="pwd" value="" />
<add key="server" value="10.33.220.87" />
<add key="database" value="test" />
</appSettings>
<system.web>
---Code Section WebForm2.aspx---
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm2.aspx.vb" Inherits="EmployeeInfo.WebForm2"%>
<HTML>
<HEAD>
<title>WebForm2</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<INPUT id="File1" style="Z-INDEX: 101; LEFT: 128px; POSITION: absolute; TOP: 72px" type="file"
runat="server">
<asp:datagrid id="DataGrid1" style="Z-INDEX: 106; LEFT: 24px; POSITION: absolute; TOP: 208px"
runat="server" Width="464px" Height="136px" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="BadgeNO" HeaderText="Badge No"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Photo">
<ItemTemplate>
<asp:Image ID="Photo" Runat="server"></asp:Image>
</ItemTemplate>
<HeaderStyle Width="160px" />
</asp:TemplateColumn>
</Columns>
</asp:datagrid><asp:label id="Label1" style="Z-INDEX: 102; LEFT: 24px; POSITION: absolute; TOP: 184px" runat="server"
Width="152px" Height="16px" BackColor="Gray" Font-Bold="True">Employee Report</asp:label><asp:button id="Button_Insert" style="Z-INDEX: 103; LEFT: 384px; POSITION: absolute; TOP: 72px"
runat="server" Text="Insert" Width="56px"></asp:button>
<asp:TextBox id="Tbx_BadgeNo" style="Z-INDEX: 104; LEFT: 128px; POSITION: absolute; TOP: 40px"
runat="server"></asp:TextBox>
<asp:Button id="Button_Report" style="Z-INDEX: 105; LEFT: 384px; POSITION: absolute; TOP: 112px"
runat="server" Text="Report"></asp:Button></form>
</body>
</HTML>
---Code Section WebFor2.vb---
Imports System
Imports System.Drawing
Imports System.IO
Imports System.Data.SqlClient
Public Class WebForm2
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents File1 As System.Web.UI.HtmlControls.HtmlInputFile
Protected WithEvents Tbx_BadgeNo As System.Web.UI.WebControls.TextBox
Protected WithEvents Button_Insert As System.Web.UI.WebControls.Button
Protected WithEvents Button_Report As System.Web.UI.WebControls.Button
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private connString As String
Private Sub InitalDB()
Dim uid = ConfigurationSettings.AppSettings("uid")
Dim pwd = ConfigurationSettings.AppSettings("pwd")
Dim server = ConfigurationSettings.AppSettings("server")
Dim database = ConfigurationSettings.AppSettings("database")
connString = "server=" & server & ";uid=" & uid & ";pwd=" & pwd & ";database=" & database
End Sub
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
InitalDB()
End Sub
Private Sub Button_Report_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Report.Click
ShowPhoto()
End Sub
Private Sub ShowPhoto()
Dim dt As New DataTable
Dim myConn As SqlConnection = New SqlConnection(connString)
Dim sql As String = " SELECT * FROM tb_1 "
myConn.Open()
Dim adp As New SqlDataAdapter(sql, myConn)
adp.Fill(dt)
For lint_index As Integer = 0 To dt.Rows.Count - 1
Dim photo() As Byte = CType(dt.Rows(lint_index).Item("Photo"), Byte())
' Me.Response.BinaryWrite(photo)
Dim lstg_badgeno As String
lstg_badgeno = dt.Rows(lint_index).Item("BadgeNo")
Dim strPath As String = "~/photo/" + lstg_badgeno + ".JPG"
Dim strPhotoPath As String = Server.MapPath(strPath)
Dim bw As BinaryWriter = New BinaryWriter(File.Open(strPhotoPath, FileMode.OpenOrCreate))
bw.Write(photo)
bw.Close()
Next
myConn.Close()
Me.DataGrid1.DataSource = dt
Me.DataGrid1.DataBind()
UpdatePhoto()
End Sub
Private Sub Button_Insert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Insert.Click
Try
Dim strPath As String = Me.File1.PostedFile.FileName
Dim BadgeNo As String = Me.Tbx_BadgeNo.Text
'Dim strPhotoPath As String = Server.MapPath(strPath)
'读取图片
' Dim fs As FileStream = New System.IO.FileStream(strPhotoPath, FileMode.Open, FileAccess.Read)
Dim fs As FileStream = New System.IO.FileStream(strPath, 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(connString)
Dim strComm As String = " INSERT INTO tb_1(BadgeNo,Photo) "
strComm = (strComm + (" VALUES('" + BadgeNo + "', @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()
Catch ex As Exception
Response.Write(ex.ToString)
End Try
ShowPhoto()
End Sub
'---Bind Photo---
Private Sub UpdatePhoto()
For Each lobj_dgi As DataGridItem In Me.DataGrid1.Items
Dim tmp_Image As System.Web.UI.WebControls.Image = CType(lobj_dgi.Cells(1).FindControl("Photo"), System.Web.UI.WebControls.Image)
Dim lstg_badgeno As String = lobj_dgi.Cells(0).Text
tmp_Image.ImageUrl = "~/photo/" + lstg_badgeno + ".JPG"
Next
End Sub
End Class
分享到:
相关推荐
在IT领域,尤其是在数据库...总结,"图片以二进制存取数据库"是数据库管理中的一种实用技术,它通过C#等编程语言实现了对图片数据的高效存储和检索。理解并掌握这一技术,对于开发支持多媒体数据的应用程序至关重要。
"c#数据库操作二进制存取图片源码.rar"这个压缩包文件显然包含了一个示例项目,展示了如何在C#中将图片以二进制形式存储到数据库,并进行读取。这种做法通常用于存储无法直接作为文本的非结构化数据。 首先,我们来...
### 二进制图片存取读入...通过上述步骤,我们不仅能够将图片以二进制的形式存储到数据库中,而且还能够从数据库中读取这些数据,并恢复成原来的图片文件。这对于开发需要处理大量图像的应用程序来说是非常实用的技术。
接下来,我们来看看如何从数据库中读取这些二进制数据并在网页上显示图片。 #### 使用`Image`控件显示 一种简单的方法是使用ASP.NET中的`Image`控件来显示图片。可以通过以下步骤实现: 1. **从数据库读取二进制...
通过将图片转换为二进制数据并存储在数据库中,可以实现数据的高效管理,同时保持程序的稳定性和性能。这个过程中的关键是理解如何使用TStream对象以及如何在数据库组件中正确处理BLOB字段。通过深入学习和实践,...
C#实现图片与二进制相互转换及数据库存储 本文主要介绍了C#实现把图片转换成二进制以及把二...本文介绍了C#实现图片与二进制相互转换以及图片保存到数据库的相关操作技巧,希望能够帮助读者更好地理解和应用相关技术。
4. **C#代码示例**:下面是一个简单的C#代码示例,展示了如何读取和写入图片的二进制数据: ```csharp using System; using System.IO; public class ImageBinaryAccess { public static void Main() { string ...
在C#中,存储和检索二进制数据,如图片,通常涉及到数据库操作,特别是当这些数据需要与数据库中的其他信息关联时。本例中,我们关注的是如何使用C#处理SQL Server数据库中的二进制图像数据。以下是关键知识点: 1....
总结来说,VC在处理二进制大对象时,主要涉及选择合适的数据库接口(如ODBC或ADO),理解BLOB的存储策略,优化性能,处理错误和异常,以及确保安全性。熟练掌握这些技术,将有助于开发出高效且可靠的数据库应用程序...
这个实例将深入讲解如何在C# WebForm环境中实现对二进制文件的读取和存储。下面,我们将详细探讨相关知识点。 1. **文件上传** 在WebForm中,用户可以通过`<asp:FileUpload>`控件选择本地文件进行上传。在服务器端...
在IT领域,图片存取(二进制)是一种常见的数据处理技术,特别是在数据库管理和网络传输中。这种技术涉及将图片转换为二进制格式,以便更有效地存储和检索。下面我们将详细探讨这个主题。 首先,我们需要理解二进制...
本文主要介绍了如何利用二进制技术来实现文件在SQL数据库中的存取,这不仅保证了数据的安全性和完整性,同时也提高了数据的封装性和易于管理的特性。 首先,文章指出,在传统方法中,文件一般被存放在操作系统的...
在标题“利用数据库存取图片,从数据库读取显示出来”中提到的方法,意味着我们将直接把图片的数据存储在数据库内,而不是仅仅保存图片的文件路径。这种方法在某些场景下可能是必要的,例如,如果需要确保图片与相关...
"使用二进制存取用户头像"这个主题涉及到如何将图像数据以二进制形式存储并从数据库中检索,以提高数据传输速度和节省存储空间。下面将详细介绍这个过程及其相关知识点。 一、二进制数据存储 1. 图像文件格式:...
在本实例中,我们探讨的是如何使用VBA在Excel中读取长二进制数据,这通常涉及到处理大容量的数据,如图片、音频文件或大型文本文件,这些数据可能不能直接以文本格式存储。以下将详细阐述这个过程及其相关知识点。 ...
图片不能直接存入SQLite数据库,因为它们是二进制数据,不适合文本型字段。通常,我们将其转换为`byte[]`或Base64编码字符串存入`BLOB`类型字段。使用`Bitmap`的`compress`方法可将图片转为字节数组,然后存储。 5...
在数据库中,BLOB字段用来存储图片、音频、视频等二进制文件。当需要将这些数据存储到数据库时,我们需要使用特定的方法。例如,对于图像数据,我们可以先读取文件到内存,然后将其转换为二进制流,最后通过ADO的`...
首先,Access数据库支持多种数据类型,包括BLOB(Binary Large Object)类型,这正是用来存储二进制数据,如图片的理想选择。在创建Access表时,我们需要创建一个字段,其数据类型为"OLE对象"或"Blob",用于存储图片...