using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace eMeng.Exam.DataGridShowImage
{
/// <summary>
/// DataGridShowImage 的摘要说明。
/// </summary>
public class DataGridShowImage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DG_Persons;
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Data.SqlClient;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace eMeng.Exam.DataGridShowImage
{
/// <summary>
/// ReadImage 的摘要说明。
/// </summary>
public class ReadImage : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strImageID = Request.QueryString["id"];
SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=mxh;User Id=sa;Password=;");
SqlCommand myCommand = new SqlCommand("Select PersonImageType, PersonImage from Person Where PersonID="
+ strImageID, myConnection);
从SQL Server数据库提取图片并显示在DataGrid
下面的代码实现从SQL Server数据库提取图片并显示在DataGrid的功能。
下面就是完整的代码,拷贝即可运行:
//VB.NET版本
<%@ Page Language="vb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<head>
<title>用户列表</title>
<script runat=server>
Sub Page_Load(sender As Object, e As EventArgs)
If Not Page.IsPostBack Then
BindGrid()
End If
End Sub
Private Sub BindGrid()
Dim strCnn As String = "Data Source=.;Initial Catalog=mxh;User Id=sa;Password=;"
Dim myConnection As SqlConnection = New SqlConnection(strCnn)
Dim myCommand As SqlCommand = New SqlCommand("SELECT * FROM Person", myConnection)
myCommand.CommandType = CommandType.Text
Try
myConnection.Open()
DG_Persons.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
DG_Persons.DataBind()
Catch SQLexc As SqlException
Response.Write("Error occured while Generating Data. Error is " & SQLexc.ToString())
End Try
End Sub
<%@ Page Language="vb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<HTML>
<HEAD>
<script runat=server>
Public Sub Page_Load(sender As Object, e As EventArgs)
Dim strImageID as String = Request.QueryString("id")
Dim myConnection As New SqlConnection("Data Source=.;Initial Catalog=mxh;User Id=sa;Password=;")
Dim myCommand As New SqlCommand("Select PersonImageType, PersonImage from Person Where PersonID=" _
+ strImageID, myConnection)
Try
myConnection.Open()
Dim myDataReader as SqlDataReader
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
Do While (myDataReader.Read())
Response.ContentType = myDataReader.Item("PersonImageType")
Response.BinaryWrite(myDataReader.Item("PersonImage"))
Loop
myConnection.Close()
Catch SQLexc As SqlException
End Try
End Sub
</script>
</HEAD>
<body>
<form runat="server" ID="Form1"></form>
</body>
</HTML>
Private Sub EncryptFile(ByVal Filename As String, ByVal pwBytes() As Byte)
Const BLOCKSIZE = 8192
Dim tempFile As String = Filename & tempExt
Dim inStream As New System.IO.FileStream(Filename, IO.FileMode.Open)
Dim outStream As New System.IO.FileStream(tempFile, IO.FileMode.Create)
Dim bytesLeft As Long = inStream.Length
Dim buffer(BLOCKSIZE - 1) As Byte
Do While bytesLeft > 0
Dim BytesToRead As Long = Math.Min(BLOCKSIZE, bytesLeft)
这是将图片插入数据库的
Dim cn As ADODB.Connection
Dim strCon As String = "Provider=MSDAORA.1;" & "User ID=system;" & "Data Source=reinetsu2;" & "Password=password"
Dim path As String
Dim i As Integer
Dim rs As ADODB.Recordset
cn = New ADODB.Connection
cn.Open(strCon)
For i = 1 To 10
path = "F:\pictures\test\" & i & ".jpg"
Dim fs As New System.IO.FileStream(path, IO.FileMode.Open, IO.FileAccess.Read)
Dim img(fs.Length - 1) As Byte
fs.Read(img, 0, img.Length)
rs.Open("test", cn, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockPessimistic, -1)
rs.AddNew()
rs("img").AppendChunk(img)
rs.Update()
Next i
rs.Close()
cn.Close()
Dim msmImage As System.IO.MemoryStream
Dim bytImageData As Byte()
bytImageData = ctype(从数据库中取出的图片文件对象,Byte())
msmImage = New System.IO.MemoryStream(bytImageData)