c# 读取Northwind数据库image字段
2009-03-13 00:00
411 查看
这里值得一提的是,web控件image不像winForm控件那样可以通过读取二进制流赋值给image属性来显示图像。可以通过变通的方法来实现,流行的做法是新建一个页面专门用来显示图像,这里代码直接用孟子E章前辈的(作了小修改,主要是剔除78个byte字节流来正常显示northwind数据库的图片):
ReadImage.aspx.cs
在源页面如Default.aspx.cs可以通过下面方法调用
如果不想新建一个页面来承载图像,也可以使用下面的方法:(注意:下面的类是自定义的,大家看得懂这个方法就可以了)
ReadImage.aspx.cs
using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; namespace WebApplication2 { public partial class ReadImage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string strImageID = Request.QueryString["id"]; SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=northwind;User Id=sa;Password=123456;"); SqlCommand myCommand = new SqlCommand("Select Picture from Categories Where CategoryID=" + strImageID, myConnection); try { myConnection.Open(); SqlDataReader myDataReader; myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); if (myDataReader.Read()) { Response.Clear(); Response.ContentType = "image/jpeg"; byte[] b = (byte[])myDataReader["Picture"]; //下面的方法就是用来让图片可以正常显示 byte[] temp=new byte [b.Length -78]; Array.Copy(b, 78, temp, 0, b.Length - 78); Response.BinaryWrite(temp); } myConnection.Close(); } catch (SqlException SQLexc) { Response.Write(SQLexc.ToString ()); } Response.End(); } } }
在源页面如Default.aspx.cs可以通过下面方法调用
protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack ) Image1.ImageUrl = FormatURL("1"); } protected string FormatURL(string strArgument) { return "ReadImage.aspx?id=" + strArgument; }
如果不想新建一个页面来承载图像,也可以使用下面的方法:(注意:下面的类是自定义的,大家看得懂这个方法就可以了)
using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; namespace WebApplication2 { public partial class ReadImage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string strImageID = Request.QueryString["id"]; SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=northwind;User Id=sa;Password=123456;"); SqlCommand myCommand = new SqlCommand("Select Picture from Categories Where CategoryID=" + strImageID, myConnection); try { myConnection.Open(); SqlDataReader myDataReader; myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); if (myDataReader.Read()) { Response.Clear(); Response.ContentType = "image/jpeg"; byte[] b = (byte[])myDataReader["Picture"]; byte[] temp=new byte [b.Length -78]; Array.Copy(b, 78, temp, 0, b.Length - 78); Response.BinaryWrite(temp); } myConnection.Close(); } catch (SqlException SQLexc) { Response.Write(SQLexc.ToString ()); } Response.End(); } } }
相关文章推荐
- C#读取excel文件的内容(使用DataSet)
- C#读取Excel表中的数据时混合字段部分数据没有
- C#读取MS Project文件
- C#读取文件:按行读取
- C#读取XML中元素和属性值的实现代码
- C# 读取 config 文件
- c#读取gps数据基类
- C#读取计算机串口
- c#读取excel数据,同时存入mysql数据库
- C#IO 文件读取笔记二
- C# INI文件的读取
- C#中读取xml文件指定节点
- C# TreeView读取数据库简单实例
- C#中读取“已注册的文件类型”的图标及读取指定文件图标的方法 (转)
- c# 读取记事本txt文档到DataTable中
- 【c#操作office】--OleDbDataAdapter 与OleDbDataReader方式读取excel,并转换为datatable
- C#从控制台读取字符串的方法
- c#语言编写读取日志便于调试
- C#读取Word指定页的内容