讀寫SQL資料庫Image欄位

2022-02-12 22:25:55 字數 2112 閱讀 7646

c# 讀寫sql資料庫image欄位2009-01-31 19:27    在用c#對資料庫image欄位讀寫過程中,遇到了一些問題,在網上搜尋發現此類問題比較多,但是很少提供比較全面的答案,在此我從對image欄位讀寫檔案和讀寫兩個方面談談我的認識.

在講主題之前,我應該闡明一點,資料庫的image欄位儲存的是位元組,所以寫入資料庫image欄位和從資料庫image欄位讀取的內容都應該為位元組.

1、資料庫image欄位讀寫檔案

寫檔案:寫檔案的過程為將檔案以流檔案形式開啟並將內容讀取到乙個byte陣列,然後將此byte陣列寫入資料庫的image欄位。

原始碼:fileinfo finfo=new fileinfo("檔名");   //絕對路徑

if(finfo.exists)

finally

}讀檔案:讀檔案的過程為從資料庫的image欄位讀取內容儲存到byte陣列,然後將此byte陣列以檔案流形式寫入檔案。

原始碼:byte content;

sqlconnetion conn=new sqlconnection("連線字串");

sqldataadapter da=new sqldataadapter("select image欄位名 from 表名",conn);

dataset ds=new dataset();

da.fill(da,"word");

datarow dr=ds.tables["word"].rows[0];     //將讀取的第一行內容儲存到dr

content=(byte)dr["image欄位名"];

int arraysize=content.getupperbound(0);

filestream stream=new filestream("檔名",filemode.openorcreate,fileaccess.write);

stream.write(content,0,arraysize);

stream.close();

2、資料庫image欄位讀寫

繫結到控制項的方式:

通 過將image欄位繫結到picturebox實現。檔案中我提供了乙個例項,要正常執行需要在northwind中新增資料庫表employees,數 據庫表的結構為employeeid int(4) 自動增 長,firstname nvarchar(10),lastname nvarchar(20),photo image(16) null。

直接用sqlcommand實現:

其 實把握住image欄位存的是byte型別資料,用sqlcommand實現新增、修改就很簡單了,跟文字的區別就是在讀出的時候需要將byte型別資料 轉化為image,在寫入時需要將image以流的形式轉為為byte陣列,然後再將byte陣列儲存到image欄位。

例項:comm = "insert into myemployees(firstname,lastname,photo) values(@fname,@lname,@photo)";

sqlcommand command=new sqlcommand(comm);

command.connection = conn;

//建立parameter

command.parameters.add("@fname",sqldbtype.nvarchar);

command.parameters[0].value = textbox1.text;

command.parameters.add("@lname", sqldbtype.nvarchar);

command.parameters[1].value = textbox2.text;

command.parameters.add("@photo",sqldbtype.image);

command.parameters[2].value = imgbyte;

其中imgbyte為byte陣列,通過filestream的read填充的byte資料。

datarow dr = dt.tables[0].rows[0];

byte br = null;

memorystream ms = new memorystream();

if (dr["image1"].tostring() != "")

else

C 操作 SQL的 Image欄位

1 控制台應用程式下演示插入 public void insertimg conn.close 2 控制台應用程式下讀出並生成到物理位置 public void read 3 web下picshow.aspx頁將讀取出來並寫入到瀏覽器上呈現 public void read 4 在web中可以如上p...

SQL資料庫字段型別說明

bit 0或1的整型數字 int 從 2 31 2,147,483,648 到2 31 2,147,483,647 的整型數字 allint 從 2 15 32,768 到2 15 32,767 的整型數字 tinyint 從0到255的整型數字 decimal 從 10 38到10 38 1的定精...

SQL資料庫字段型別詳解

sql資料庫字段型別詳解 資料型別 型別 描述 bit 整型 bit 資料型別是整型,其值只能是0 1或空值。這種資料型別用於儲存只有兩種可能值的資料,如yes 或no true 或fa lse on 或off int 整型 int 資料型別可以儲存從 231 2147483648 到231 214...