最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# 讀取Northwind數(shù)據(jù)庫image字段

 更新時間:2009年03月13日 22:36:36   作者:  
我在寫一個三層結(jié)構(gòu)Demo時,使用了Northwind這個范例數(shù)據(jù)庫。但是奇怪的是,讀取Categories表的Picture列(image類型)無法在image控件中正常顯示(解決方案在后面代碼中可以看到)。
這里值得一提的是,web控件image不像winForm控件那樣可以通過讀取二進(jìn)制流賦值給image屬性來顯示圖像。可以通過變通的方法來實現(xiàn),流行的做法是新建一個頁面專門用來顯示圖像,這里代碼直接用孟子E章前輩的(作了小修改,主要是剔除78個byte字節(jié)流來正常顯示northwind數(shù)據(jù)庫的圖片):
ReadImage.aspx.cs
復(fù)制代碼 代碼如下:

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可以通過下面方法調(diào)用
復(fù)制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack )
Image1.ImageUrl = FormatURL("1");

}
protected string FormatURL(string strArgument)
{
return "ReadImage.aspx?id=" + strArgument;
}

如果不想新建一個頁面來承載圖像,也可以使用下面的方法:(注意:下面的類是自定義的,大家看得懂這個方法就可以了)
復(fù)制代碼 代碼如下:

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();

}
}
}

相關(guān)文章

  • asp.net 文件上傳 實時進(jìn)度

    asp.net 文件上傳 實時進(jìn)度

    在swfupload的基礎(chǔ)上增加一些個性化東西.附圖2張.
    2009-11-11
  • 利用EF6簡單實現(xiàn)多租戶的應(yīng)用

    利用EF6簡單實現(xiàn)多租戶的應(yīng)用

    這篇文章主要給大家介紹了關(guān)于如何利用EF6簡單實現(xiàn)多租戶應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用EF6具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • asp.net 防止用戶通過后退按鈕重復(fù)提交表單

    asp.net 防止用戶通過后退按鈕重復(fù)提交表單

    經(jīng)過一番仔細(xì)的尋尋覓覓之后,我發(fā)現(xiàn)仍舊無法找出真正能夠完全禁用瀏覽器后退按鈕的辦法。所有這里介紹的方法都能夠在不同程度上、以不同的方式禁止用戶返回前一頁面,但它們都有各自的局限。
    2009-11-11
  • Asp.net利用JQuery AJAX實現(xiàn)無刷新評論思路與代碼

    Asp.net利用JQuery AJAX實現(xiàn)無刷新評論思路與代碼

    Asp.net利用JQuery AJAX實現(xiàn)無刷新評論,此功能是每一個從事asp.net開發(fā)者的朋友都希望實現(xiàn)的,本文利用閑暇時間整理了一些,有需要的朋友可以參考下
    2012-12-12
  • .NET Core對象池的應(yīng)用:設(shè)計篇

    .NET Core對象池的應(yīng)用:設(shè)計篇

    本文主要講解對象池的三個核心對象:表示對象池的ObjectPool<T>對象、對象值提供者的ObjectPoolProvider對象,已及控制池化對象創(chuàng)建與釋放行為的IPooledObjectPolicy<T>對象。感興趣的小伙伴可以參考一下這篇文章
    2021-09-09
  • mvc form表單提交的幾種形式整理總結(jié)

    mvc form表單提交的幾種形式整理總結(jié)

    這篇文章主要介紹了mvc form表單提交的幾種形式整理總結(jié)的相關(guān)資料,這里提供了幾種方法及實例代碼,需要的朋友可以參考下
    2016-12-12
  • .NET中的異常和異常處理用法分析

    .NET中的異常和異常處理用法分析

    這篇文章主要介紹了.NET中的異常和異常處理用法,分析了.NET中的異常處理機(jī)制以及相關(guān)注意事項,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • Asp.Net類庫中發(fā)送電子郵件的代碼

    Asp.Net類庫中發(fā)送電子郵件的代碼

    發(fā)送電子郵件是許多需要用戶注冊的網(wǎng)站的通用功能,通過正則表達(dá)式我們可以過濾掉不符合電子郵件格式的輸入,但是仍沒有辦法確保用戶填寫的電子郵件地址一定是他本人真實有效的電子郵件地址
    2008-09-09
  • 淺析ASP.NET路由模型工作原理

    淺析ASP.NET路由模型工作原理

    很多人知道Asp.Net中路由怎么用的,卻不知道路由模型內(nèi)部的運行原理,今天我就給大家吹下ASP.NET的路由模塊是如何工作的
    2016-03-03
  • ASP.NET MVC3網(wǎng)站創(chuàng)建與發(fā)布(1)

    ASP.NET MVC3網(wǎng)站創(chuàng)建與發(fā)布(1)

    這篇文章主要介紹了ASP.NET MVC3網(wǎng)站創(chuàng)建與發(fā)布,根據(jù)文章內(nèi)容大家可以實現(xiàn)發(fā)布網(wǎng)站,感興趣的小伙伴們可以參考一下
    2015-08-08

最新評論

伊通| 明水县| 延吉市| 梁河县| 旬邑县| 囊谦县| 仙桃市| 玉山县| 丹巴县| 县级市| 察哈| 旬阳县| 根河市| 南雄市| 江川县| 拜城县| 璧山县| 松潘县| 越西县| 垦利县| 黄山市| 汤原县| 枣阳市| 民乐县| 中江县| 永丰县| 吴桥县| 焉耆| 福海县| 桃园县| 龙门县| 深水埗区| 茌平县| 通江县| 乌鲁木齐县| 新邵县| 庆安县| 呼伦贝尔市| 弥勒县| 遂昌县| 峡江县|