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...