熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

用OleDbCommand更新SQL Server的二進制文件

2013-11-15 14:43:10  來源: SQL Server 

  利用ADONET中的OleDbConnection\OleDbCommand 可以方便的對SQL Server中的二進制文件進行更新操作下面是詳細的代碼演示
  
  演示環境
  數據庫機器名 s_test
  登陸名 sa
  密碼
  數據庫名 db_test
  
  下面建立一個表 
  create table tb_test(id int identity()photo image constraint pk_tb_test primary key(id)) 
  
  將硬盤上的文件保存至數據庫(C#)
  //
  //
  //下面的示例將c:\txt文件保存至數據庫的tb_test表中
  //
  //
  
  using System;
  using SystemIO;?
  using SystemData;
  using SystemDataOleDb;
  
  class image_test
  {
  [STAThread]
  static void Main(string[] args)
  {
  try
  {
  //初始化OleDbConnection和OleDbCommand
  OleDbConnection cn = new OleDbConnection(provider=sqloledb;server=s_test;user id=sa;password=;initial catalog=db_test);
  OleDbCommand cmd = new OleDbCommand(INSERT tb_test(photo) VALUES(?)cn);
  
  //打開文件
  FileStream fs = new FileStream(c:\\txt FileModeOpen FileAccessRead);
  Byte[] b = new Byte[fsLength];
  fsRead(b bLength);
  fsClose();
  
  //打開連接
  OleDbParameter prm = new OleDbParameter(@photoOleDbTypeVarBinary bLength?
  ParameterDirectionInput false nullDataRowVersionCurrent b);
  cmdParametersAdd(prm);
  cnOpen();
  
  //執行
  if (cmdExecuteNonQuery() == )
  ConsoleWriteLine(OK);
  else
  ConsoleWriteLine(Fail);?
  cnClose();
  }
  catch(Exception ex)
  {
  ConsoleWriteLine(exMessage );
  }
  }
  }?
  
  更新數據庫中保存的文件
  //
  //
  //下面的示例用將數據庫的tb_test表中ID=的記錄的photo更新為c:\txt
  //
  //
  
  using System;
  using SystemIO;?
  using SystemData;
  using SystemDataOleDb;
  
  class image_test
  {
  [STAThread]
  static void Main(string[] args)
  {
  try
  {
  //初始化OleDbConnection和OleDbCommand
  OleDbConnection cn = new OleDbConnection(provider=sqloledb;server=s_test;user id=sa;password=;initial catalog=db_test);
  OleDbCommand cmd = new OleDbCommand(UPDATE tb_test SET photo= ? WHERE ID=cn);
  
  //打開文件
  FileStream fs = new FileStream(c:\\txt FileModeOpen FileAccessRead);
  Byte[] b = new Byte[fsLength];
  fsRead(b bLength);
  fsClose();
  
  //打開連接
  OleDbParameter prm = new OleDbParameter(@photoOleDbTypeVarBinary bLength?
  ParameterDirectionInput false nullDataRowVersionCurrent b);
  cmdParametersAdd(prm);
  cnOpen();
  
  //執行
  if (cmdExecuteNonQuery() == )
  ConsoleWriteLine(OK);
  else
  ConsoleWriteLine(Fail);?
  cnClose();
  }
  catch(Exception ex)
  {
  ConsoleWriteLine(exMessage );
  }
  }
  }
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22228.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.