从SQL Server数据库提取图片并显示在DataGrid http://dotnet.aspx.cc/article/ecd9ae16-8ff0-4a1c-9b9f-5e8b641cb1b1/read.aspx

转载 2007年09月19日 10:19:00
作者:孟宪会 出自:【孟宪会之精彩世界】 发布日期:2003年6月20日 19点27分10秒

下面的代码实现从SQL Server数据库提取图片并显示在DataGrid的功能。

下面就是完整的代码,拷贝即可运行:

<%@ 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 Function FormatURL(strArgument) as String Return ("ReadImage.aspx?id=" & strArgument) End Function </script> </head> <body style="font: 9pt 宋体"> <h3 align=center>从数据库中取得照片并显示在DataGrid中</h3> <form id="Form1" method="post" runat="server"> <asp:DataGrid ID="DG_Persons" AutoGenerateColumns=False Width="99%" HeaderStyle-BackColor="#ff0000" HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="#ffffff" ItemStyle-BackColor=Beige BorderColor="#000000" Runat=server HeaderStyle-HorizontalAlign=Center> <Columns> <asp:TemplateColumn HeaderText="姓名"> <ItemTemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonName") %>' ID="Label1"/> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="电子邮件"> <ItemTemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonEmail") %>' ID="Label2"/> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="性别"> <ItemTemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonSex") %>' ID="Label3"/> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="出生日期"> <ItemTemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonDOB") %>' ID="Label4"/> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="照片"> <ItemTemplate> <asp:Image Runat=server ID="Image1" Width="150" Height="125" ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID")) %>' /> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> </form> </body> </html>

ReadImage.aspx

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

C# 版本

DataGridShowImage.aspx

<%@ Page language="c#" debug="true" Codebehind="DataGridShowImage.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.DataGridShowImage.DataGridShowImage" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>从数据库中取得照片并显示在DataGrid中</title> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="DataGridShowImage" method="post" runat="server"> <h3 align="center">从数据库中取得照片并显示在DataGrid中</h3> <asp:DataGrid ID="DG_Persons" AutoGenerateColumns="False" Width="99%" HeaderStyle-BackColor="#ff0000" HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="#ffffff" ItemStyle-BackColor="Beige" BorderColor="#000000" Runat="server" HeaderStyle-HorizontalAlign="Center"> <Columns> <asp:TemplateColumn HeaderText="姓名"> <ItemTemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonName") %>' ID="Label1"/> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="电子邮件"> <ItemTemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonEmail") %>' ID="Label2"/> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="性别"> <ItemTemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonSex") %>' ID="Label3"/> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="出生日期"> <ItemTemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonDOB") %>' ID="Label4"/> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="照片"> <ItemTemplate> <asp:Image Runat=server ID="Image1" ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID")) %>' /> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> </form> </body> </HTML>

DataGridShowImage.aspx.cs

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; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!this.IsPostBack) { BindGrid(); } } private void BindGrid() { string strCnn = "Data Source=.;Initial Catalog=mxh;User Id=sa;Password=;"; SqlConnection myConnection = new SqlConnection(strCnn); SqlCommand myCommand = new SqlCommand("SELECT * FROM Person", myConnection); myCommand.CommandType = CommandType.Text; try { myConnection.Open(); DG_Persons.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection); DG_Persons.DataBind(); } catch(SqlException SQLexc) { Response.Write("提取数据时出现错误:" + SQLexc.ToString()); } } protected string FormatURL(object strArgument) { return "ReadImage.aspx?id=" + strArgument.ToString(); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }

ReadImage.aspx

<%@ Page language="c#" Codebehind="ReadImage.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.DataGridShowImage.ReadImage" %>

ReadImage.aspx.cs

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); try { myConnection.Open(); SqlDataReader myDataReader; myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); if(myDataReader.Read()) { Response.Clear(); Response.ContentType = myDataReader["PersonImageType"].ToString(); Response.BinaryWrite((byte[])myDataReader["PersonImage"]); } myConnection.Close(); } catch (SqlException SQLexc) { } Response.End(); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }
 

从SQL Server数据库提取图片并显示在DataGrid

 下面的代码实现从SQL Server数据库提取图片并显示在DataGrid的功能。下面就是完整的代码,拷贝即可运行: %@ Page Language="vb" %>%@ Import Namesp...
  • maskxxx
  • maskxxx
  • 2007-01-28 23:13:00
  • 483

向SQL Server数据库添加图片 http://dotnet.aspx.cc/article/2a5dd7c6-a45a-48ab-a2e8-342a29f17506/read.aspx

作者:孟宪会 出自:【孟宪会之精彩世界】 发布日期:2003年6月20日 19点26分46秒 ...
  • cuoguo1111
  • cuoguo1111
  • 2007-09-19 10:19:00
  • 1094

从数据库中读取Blob对象图片并显示

大致方法就是,从数据库中读出Blob的流来,把流写到页面中去:package com.XXXXXX.file;import java.io.IOException;import java.io.Inp...
  • RayChase
  • RayChase
  • 2008-03-27 15:04:00
  • 2254

WPF连接数据库+显示数据到dataGrid

在这里我会讲述2种WPF连接到数据库的方式,也是初学WPF,希望各位别吐槽   (1)WPF支持直接用ado.net ,不像silverlight那样要通过RIA或者其他方式去连接数据库   所以...
  • ccx_john
  • ccx_john
  • 2013-12-17 10:09:14
  • 2131

在ASP.NET中把图片保存到SQL SERVER数据库

翻译:吕绍伟(转载)介绍在很多情况下,我们需要把图片保存到数据库中。在某些应用程序中,存在一些敏感信息不能被存储到文件系统中,因为存储在文件系统上的任何图片都很容易被用户非法获得。本文将讨论在ASP....
  • vzxq
  • vzxq
  • 2004-09-14 10:17:00
  • 1184

c#向SQL Server中存储图片并且再从数据库中读取图片

前言数据库课程设计答辩时,老师提出了如果数据是图片或者其他文件类型的时候,顿时觉得自己做的管理系统用到的较多的就是Char类型。于是,答辩结束后,就搜集资料学习,在查找资料的时候发现,有的一开始并不能...
  • sinat_27714067
  • sinat_27714067
  • 2016-07-01 17:08:22
  • 6076

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

转自:http://www.cnblogs.com/hfzsjz/archive/2010/05/21/1740778.html 本实例主要介绍如何将图片存入数据库。将图片存入数据库,首先要在数...
  • chelen_jak
  • chelen_jak
  • 2015-11-23 12:17:44
  • 2992

SQL Server数据库提取图片并显示在DataGrid

用户列表Sub Page_Load(sender As Object, e As EventArgs)If Not Page.IsPostBack ThenBindGrid()End IfEnd Su...
  • lcfgaoyong
  • lcfgaoyong
  • 2006-05-10 20:44:00
  • 605

图片显示在页面,从数据库提取图片并限制图片的大小

要显示数据库里的一个值,可以在.aspx页中          在后台.cs文件中,labl1.datasource=用sql语句读出的table;//里面要包含前面指定的,"数据库中的字段名"   ...
  • wuxianwei
  • wuxianwei
  • 2008-01-31 14:25:00
  • 1013

如何读取保存在数据库中的图片显示在DataGrid中

在DataGrid中有一个模板列,里面放置了一个ImageButton控件,当然Image也可以。你首先必须绑定DataGrid才能在使用DataBinder.Eval(Container,"Data...
  • qdzx2008
  • qdzx2008
  • 2005-09-17 23:38:00
  • 907
收藏助手
不良信息举报
您举报文章:从SQL Server数据库提取图片并显示在DataGrid http://dotnet.aspx.cc/article/ecd9ae16-8ff0-4a1c-9b9f-5e8b641cb1b1/read.aspx
举报原因:
原因补充:

(最多只允许输入30个字)