`
csstome
  • 浏览: 1467821 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

图片二进制数据库的存取和读取...

阅读更多

图片二进制数据库的存取和读取<?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

分享到:
评论

相关推荐

    .net存取数据库二进制文件

    Imports System.IO Imports System.Data.SqlClient Public Class image Shared Sub Main() '读入文件数据 Dim fs = New FileStream("c:\1.jpg", IO.FileMode.Open, IO.FileAccess.... '打开数据库连接

    C# webform 二进制 文件 存取实例

    自己写的代码,项目都在运行,决定可以使用,代码有注释,博客有说明,有问题还可以私信我,注意如果有axja的话需要把上传按钮事件在局部刷新中注册一下,不然取不到上传的文件

    VB读取长二进制实例(集成于EXCEL文件中)

    VB读取长二进制实例(集成于EXCEL文件中),打开EXCEL即可运行窗体,附带ACCESS数据库,读取后分别放到了C:\temp1.rar ,temp2.rar ...中

    C从SQL数据库中读取和存入图片

    C从SQL数据库中读取和存入图片:将文件和图片插入到数据表中,实现二进制的存取

    C#使用SQLite存取图片的示例

    这是一个C#.NET示例程序, 简单演示了如何使用C#操作SQLite数据库。同时演示了如何用C#讲图片二进制数据存储到数据库和从数据库读取图片二进制数据并显示在PictureBox.

    ASP.NET 存取二进制图片

    最近做东西遇到向数据库插入二进制图片然后在网页中读取的问题,通过网上查资料写了个例子,拿出来分享一下,本文件采用VS2010+Sqlserver2008

    vc+odbc+access如何对数据库中的位图读取和存入

    大对象文档以二进制数据形式保存在BLOB类型的字段中,这些大对象可能是Word、Execl或图片文件等,目前多数数据库都支持BLOB类型的字段。 VC存取这些大对象数据有众多方法,如OLE、ActiveX等,事实上VC的MFC提供了一...

    图片在数据库中的存取

    简单实现了图片在数据库中的存储和读取,核心思想就是将图片转换成二进制的存储

    asp.net图片存取技术实例

    1、将上传图片名称存储到数据库中 2、将图片以二进制格式存储到数据库中 3、读取数据库中上传图片名称并显示图片 4、读取并显示数据库中以二进制方式存储图片 附加数据库直接运行

    SQLSERVER中进行图像存取的实现方法

    在数据库应用项目开发中,经常会使用一些二进制的图像数据,存储和读取显示图像数据主要采用的是路径链接发和内存流法。路径链接法是将图像文件保存在固定的路径下,数据库中只存储图像文件的路径和名称,此方法...

    sqlite另类存取(对象存取)

    andorid sqlite数据库另类存取方法,对象存取,采用序列化把对象转换成二进制存取。同时读取的时候相反。

    数据库中文件夹的整体存储与随机访问

    针对该问题,综合数据库二进制大对象(BLOB)技术、流技术和序列化技术, 提出一种数据库中文件夹的整体存储和随机访问方法。将文件夹打包成连续的文件数据块和目录结构对象,序列化目录结构对象为目录结 构数据块,...

    2009年3月2日论坛问题集

    c#中关于二进制流的读取问题 图片存取数据库问题 数据库问题

    DBMS.rar_DBMS VC_dbms

    VC编程的简单数据库,可以生成关系,读取关系,以二进制文件存取。

    VC++使用ADO实现BLOB二进制大对象数据的存取

    内容索引:VC/C++源码,数据库应用,二进制,BLOB 在vc++开发过程中,有时候需要将数据以二进制方式存储在数据库中,本代码就是实现这一过程的示例,VC++使用ADO实现BLOB二进制大对象数据的存取,其存取的方式与普通...

    C++使用ADO实现存取图片的方法

    一般在网上查到的资料中向Server2000存储图片代码比较多,从数据库中读取图片并显示也不少,但是把图片从数据库中二进制数据转换为原图片保存在本地,就很少有C++代码了。本文就此问题一步一步地讲一讲解决的方法: ...

    数据库的操作

    读取数据库表结构、二进制存取图片、触发器SQL文件、通过视图修改信息、Linq操作数组集合等

    C#/.NET对数据库操作大全

    Database、Linq操作DataSet、Linq操作SQL、Linq操作Xml、Linq操作数组集合、触发器SQL文件、读取数据库表结构、二进制存取图片、交叉表、数据库管理、通过存储过程管理信息、通过视图修改信息、通用数据库连接等...

    基于VB程序在Access表中存储与读取试题文件

    为了提高试题文件的安全性,在存储文件到Access数据库表时,对文件的二进制数据进行异或运算,而在读取文件时,对读取到的二进制数据进行同样的异或运算。程序调试表明,基于VB程序,可以在Access表中存储与读取各种...

    ReadSaveImage .rar

    VC操作ACCESS数据库,存取二进制流图片。VS2017环境下编译通过,亲自编写,测试可用。包含六个功能:新建数据库,打开数据库,存储Pixel,读取Pixel,存储Image,读取Image。

Global site tag (gtag.js) - Google Analytics