C#讀寫SQL數據庫Image字段剖析_第1頁
C#讀寫SQL數據庫Image字段剖析_第2頁
C#讀寫SQL數據庫Image字段剖析_第3頁
C#讀寫SQL數據庫Image字段剖析_第4頁
C#讀寫SQL數據庫Image字段剖析_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C#讀寫SQL數據庫Image字段2009-01-31 19:27在用C#對數據庫Image字段 讀寫過程 中,遇到了一些問題,在網上搜索發現此類問題比較多,但是很少提供比 較全面的答案,在此我從對Image字段讀寫文件和讀寫圖片兩個方面談談我的認 識.在講主題之前,我應該闡明一點,數據庫的Image字段保存的是字節,所以寫 入數據庫Image字段和從數據庫Image字段讀取的內容都應該為字節.1、數據庫Image字段讀寫文件寫文件:寫文件的過程為將文件以流文件形式打開并將內容讀取到一個byte數組,然后將此byte數組寫入數據庫的Image字段。源碼:FileInfo finfo=new F

2、ileInfo("文件名"絕對路徑iffinfo.ExistsSqlConnection conn=new SqlConnection('連接字符串 "SqlCommand InsertCommand=new SqlCommand(;InsertCommand.Connection=conn;InsertCommand.CommandText="Insert into表 名(Image 字段 名 values(Content"InsertCommand.Parameters.Add("Content",SqlDbTy

3、pe.Image,(intfinfo.Length,"I mage字段名”;/注意,此處參數Size為寫入的字節數/讀取文件內容,寫入byte數組byte口 content=new bytefinfo.Length;FileStream stream=finfo.OpenRead(;stream.Read(content,0,content.Length;stream.Close(;InsertCommand.Parameters"Content".Value=content;的參數賦值 tryconn.Open(;InsertCommand.ExcuteNonQ

4、uery(;finallyconn.Close(;讀文件:讀文件的過程為從數據庫的Image字段讀取內容保存到byte數組,然后 將此byte數組以文件流形式寫入文件。源碼:byte口 content;SqlConnetion conn=new SqlConnection(旌接字符串 "SqlDataAdapter da=new SqlDataAdapter("Select Imag導段名 from 表名",conn; DataSet ds=new DataSet(;da.Fill(da,"word"DataRow dr=ds.Tables&q

5、uot;word".Rows0; 將讀取的第一行內容保存至 U drcontent=(bytedr"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實現。文件中我提供了一個實

6、例,要正常 運行需 要在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 =

7、 "Insert into MyEmployees(FirstName,LastName,Photo values(FName,LName,Photo"SqlCommand command=new SqlCommand(comm;command.Connection = conn;創建 Parametercommand.Parameters.Add("FName",SqlDbType.NVarChar;command.Parameters0.Value = textBox1.Text;command.Parameters.Add("LName&

8、quot;, SqlDbType.NVarChar;command.Parameters1.Value = textBox2.Text;command.Parameters.Add("Photo”,SqlDbType.Image;command.Parameters2.Value = imgByte;其中imgByte為Byte數組,通過FileStream的Read填充的byte數據。DataRow dr = dt.Tables0.Rows0;byte口 br = null;MemoryStream ms = new MemoryStream(;if (dr"image1".ToString( !=""br = (bytedr"image1"ms = new MemoryStream(br, 0, br.Length;this.pictureBoxl.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論