如何将图片插入到数据库中

如何将图片插入到数据库中,第1张

第一步://获取当前选择的图片this.pictureBox1.Image = Image.FromStream(this.openFileDialog1.OpenFile())//获取当前图片的路径string path = openFileDialog1.FileName.ToString()//将制定路径的图片添加到FileStream类中FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read)//通过FileStream对象实例化BinaryReader对象BinaryReader br = new BinaryReader(fs)//通过BinaryReader类对象的ReadBytes()方法将FileStream类对象转化为二进制数组byte[] imgBytesIn = br.ReadBytes(Convert.ToInt32(fs.Length))第二步://将图片添加到数据库中string sql="insert into pic values(@pic)"SqlParameter[] param = new SqlParameter[] { new SqlParameter("@pic", imgBytesIn) }DBHelper.GetExecuteQuery(sql, param)第三步://将图片从数据库中取出string sql="select * from pic where id=0"SqlDataReader reader = DBHelper.GetExecuteReader(sql, null)MemoryStream mss = null

从SQL Server数据库中读取并显示图片

ASPX:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="WebForm2.aspx.vb" Inherits="WebForm2"%>

<html xmlns="http://www.w3.org/1999/xhtml" >

<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>

<form id="Form1" method="post" runat="server">

<INPUT id="File1" style="Z-INDEX: 101LEFT: 128pxPOSITION: absoluteTOP: 72px" type="file"

runat="server" />

<asp:datagrid id="DataGrid1" style="Z-INDEX: 106LEFT: 24pxPOSITION: absoluteTOP: 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: 102LEFT: 24pxPOSITION: absoluteTOP: 184px" runat="server"

Width="152px" Height="16px" BackColor="Gray" Font-Bold="True">Employee Report</asp:label><asp:button id="Button_Insert" style="Z-INDEX: 103LEFT: 384pxPOSITION: absoluteTOP: 72px"

runat="server" Text="Insert" Width="56px"></asp:button>

<asp:TextBox id="Tbx_BadgeNo" style="Z-INDEX: 104LEFT: 128pxPOSITION: absoluteTOP: 40px"

runat="server"></asp:TextBox>

<asp:Button id="Button_Report" style="Z-INDEX: 105LEFT: 384pxPOSITION: absoluteTOP: 112px"

runat="server" Text="Report"></asp:Button></form>

</body>

</html>

VB.NET:

Imports System

Imports System.Drawing

Imports System.IO

Imports System.Data.SqlClient

Imports System.Data.SqlDbType

Partial 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

'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 As String = "sa"

Dim pwd As String = "fm"

Dim server As String = "192.168.1.1"

Dim database As String = "FM"

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 Data.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 = "~/photoWeb/" + 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", System.Data.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 = "~/photoWeb/" + lstg_badgeno + ".JPG"

Next

End Sub

End Class


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10048540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存