国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

C#中通過使用ADO.NET讀寫BLOB數據

2024-07-10 13:07:28
字體:
來源:轉載
供稿:網友
菜鳥學堂:

本文引用下面的 microsoft .net 框架類庫名稱空間: • system.data.sqlclient 
• system.io

本任務的內容
• 概要
  • 要求
• 創建項目 
 

概要
在 ado.net 中,datareader 列、dataset 列或 command 參數不能使用 getchunk 和 appendchunk 方法。本文介紹如何使用 visual c# .net 讀寫二進制大對象 (blob) 字段。

返回頁首
要求
下面的列表列出了推薦使用的硬件、軟件、網絡結構以及所需的 service pack: • microsoft windows 2000 professional、windows 2000 server、windows 2000 advanced server 或 windows nt 4.0 server
• microsoft visual studio .net
• microsoft sql server
返回頁首
創建項目
1. 在您的 sql server 羅斯文數據庫中添加一個名為 myimages 的表。在該表中包含以下字段: • 標識字段,名為"id",類型為 int。
• 字段,名為"description",類型為 varchar,長度為 50。
• 字段,名為"imgfield",類型為 image。


2. 啟動 visual studio .net,然后新建一個 visual c# windows 應用程序項目。
3. 將兩個 button 控件從工具箱拖到默認窗體 form1 上。
4. 在"屬性"窗口中,將 button1 的 text 屬性更改為保存到數據庫(從文件),將 button2 的 text 屬性更改為保存到文件(從數據庫)。
5. 將下面的代碼添加到"代碼"窗口頂部:
using system.data;
using system.data.sqlclient;
using system.io;
6. 雙擊 button1,然后將以下代碼添加到 button1_click 事件處理程序中:
{
sqlconnection con = new sqlconnection("server=darkover;uid=sa;pwd=password1;database=northwind");
sqldataadapter da = new sqldataadapter("select * from myimages", con);
sqlcommandbuilder mycb = new sqlcommandbuilder(da);
dataset ds = new dataset("myimages");

da.missingschemaaction = missingschemaaction.addwithkey;
filestream fs = new filestream(@"c:/winnt/gone fishing.bmp", filemode.openorcreate, fileaccess.read);

byte[] mydata= new byte[fs.length];
fs.read(mydata, 0, system.convert.toint32(fs.length));

fs.close();

da.fill(ds,"myimages");

datarow myrow;
myrow=ds.tables["myimages"].newrow();

myrow["description"] = "this would be description text";
myrow["imgfield"] = mydata;
ds.tables["myimages"].rows.add(myrow);
da.update(ds, "myimages");

con.close();

}
7. 雙擊 button2,然后將以下代碼添加到 button2_click 事件處理程序中:
{
sqlconnection con = new sqlconnection("server=darkover;uid=sa;pwd=password1;database=northwind");
sqldataadapter da = new sqldataadapter("select * from myimages", con);
sqlcommandbuilder mycb = new sqlcommandbuilder(da);
dataset ds = new dataset("myimages");

byte[] mydata= new byte[0];

da.fill(ds, "myimages");
datarow myrow;
myrow=ds.tables["myimages"].rows[0];

mydata =  (byte[])myrow["imgfield"];
int arraysize = new int();
arraysize = mydata.getupperbound(0);

filestream fs = new filestream(@"c:/winnt/gone fishing2.bmp", filemode.openorcreate, fileaccess.write);
fs.write(mydata, 0,arraysize);
fs.close();
}
8. 按 f5 鍵編譯并運行該應用程序。
9. 單擊"保存到數據庫(從文件)",將位于 c:/winnt/gone fishing.bmp 的圖像加載到 sql server image 字段。
10. 單擊"保存到文件(從數據庫)",將 sql server image 字段的數據保存回文件中。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博罗县| 元氏县| 瑞昌市| 中阳县| 枝江市| 达孜县| 平谷区| 买车| 横山县| 永安市| 碌曲县| 西平县| 百色市| 临高县| 云南省| 宜州市| 昌乐县| 大余县| 晋江市| 安陆市| 乐亭县| 隆回县| 武夷山市| 姜堰市| 宁安市| 友谊县| 灵丘县| 略阳县| 赤水市| 读书| 宜州市| 房山区| 福清市| 元江| 吉木萨尔县| 清流县| 牡丹江市| 布尔津县| 海南省| 资源县| 仪陇县|