使用OleDbCommand对象更新SQL Server中的二进制文件

原创 2004年07月07日 15:54:00

使用OleDbCommand对象更新SQL Server中的二进制文件



作者 朱二

利用ADO.NET中的OleDbConnection/OleDbCommand 可以方便的对SQL Server中的二进制文件进行更新操作,下面是详细的代码演示

演示环境:

数据库机器名 :s_test
登陆名 :sa
密码 :7890
数据库名 db_test

下面建立一个表:
create table tb_test(id int identity(1,1),photo image ,constraint pk_tb_test primary key(id))
一、将硬盘上的文件保存至数据库(C#)

//----------------------------------------------------------
//----------------------------------------------------------
//下面的示例将c:/1.txt文件保存至数据库的tb_test表中
//----------------------------------------------------------
//----------------------------------------------------------

using System;
using System.IO;?
using System.Data;
using System.Data.OleDb;

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=7890;initial catalog=db_test");
OleDbCommand cmd = new OleDbCommand("INSERT tb_test(photo) VALUES(?)",cn);

//打开文件
FileStream fs = new FileStream("c://1.txt", FileMode.Open, FileAccess.Read);
Byte[] b = new Byte[fs.Length];
fs.Read(b, 0, b.Length);
fs.Close();

//打开连接
OleDbParameter prm = new OleDbParameter("@photo",OleDbType.VarBinary ,b.Length,?
ParameterDirection.Input, false, 0, 0, null,DataRowVersion.Current, b);
cmd.Parameters.Add(prm);
cn.Open();

//执行
if (cmd.ExecuteNonQuery() == 1)
Console.WriteLine("OK");
else
Console.WriteLine("Fail");?
cn.Close();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message );
}
}
}?
三、更新数据库中保存的文件
//----------------------------------------------------------
//----------------------------------------------------------
//下面的示例用将数据库的tb_test表中ID=1的记录的photo更新为c:/1.txt
//----------------------------------------------------------
//----------------------------------------------------------

using System;
using System.IO;?
using System.Data;
using System.Data.OleDb;

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=7890;initial catalog=db_test");
OleDbCommand cmd = new OleDbCommand("UPDATE tb_test SET photo= ? WHERE ID=1",cn);

//打开文件
FileStream fs = new FileStream("c://1.txt", FileMode.Open, FileAccess.Read);
Byte[] b = new Byte[fs.Length];
fs.Read(b, 0, b.Length);
fs.Close();

//打开连接
OleDbParameter prm = new OleDbParameter("@photo",OleDbType.VarBinary ,b.Length,?
ParameterDirection.Input, false, 0, 0, null,DataRowVersion.Current, b);
cmd.Parameters.Add(prm);
cn.Open();

//执行
if (cmd.ExecuteNonQuery() == 1)
Console.WriteLine("OK");
else
Console.WriteLine("Fail");?
cn.Close();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message );
}
}
}

___72___OleDbCommand向Access中插入数据

表结构同:71 如下: 插入数据代码 using System; using System.Data; using System.Data.OleDb; ...
  • superlinmeng
  • superlinmeng
  • 2016-02-04 11:50:53
  • 533

OleDBConnection连接SQL Server表时,OleDbCommand在使用Update语句时,使用参数出错

 System.Data.OleDb.OleDBConnection OleDbCNN;System.Data.OleDb.OleDbCommand OleDbCMD;string cs;cs = "...
  • shxmh
  • shxmh
  • 2007-05-08 16:20:00
  • 3770

OleDbCommand更新数据的一些问题

using (OleDbConnection connection1 = new OleDbConnection(connectionString)) { ...
  • mozhenwen0713
  • mozhenwen0713
  • 2015-12-21 18:15:35
  • 1120

在OleDbCommand 和OdbcCommand 中使用参数的问题

类似于"SELECT * FROM table WHERE a1 = @a1 AND a2 = @a2"在OleDbCommand中似乎不管用了,OleDbCommand.Parameters.Add...
  • leaway211
  • leaway211
  • 2005-08-13 03:14:00
  • 2121

C# OleDbCommand 和 OleDbDataReader 使用小结

用代码直接说明好了.using System.Data;using System.Data.OleDb;OleDbConnection thisConnection = new OleDbConnec...
  • dfkurama
  • dfkurama
  • 2005-11-05 12:59:00
  • 11284

使用oledb对数据库进行增删改查及批量插入操作

使用oledb操作数据库工具类,可使用泛型统一操作 using System; using System.Collections.Generic; using System.Data; ...
  • fyshk
  • fyshk
  • 2015-04-29 11:15:29
  • 2228

OleDbCommand执行查询无效的解决

今日连接数据库,写下以下代码  Dim conn As New OleDbConnection        Dim cmd As New OleDbCommand()        conn.Con...
  • chsword
  • chsword
  • 2006-12-05 16:27:00
  • 1573

OleDBConnection连接Viusal Foxpro表,OleDbCommand在使用Update语句时不可使用参数。

  System.Data.OleDb.OleDBConnection OleDbCNN;System.Data.OleDb.OleDbCommand OleDbCMD;string cs;cs = ...
  • shxmh
  • shxmh
  • 2007-05-08 12:19:00
  • 1134

OleDbCommand使用参数应该注意的地方

最近写程序用到OleDbCommand的Parameter写数据库,遇到很多问题:1、OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序不...
  • friendliu
  • friendliu
  • 2008-04-15 12:30:00
  • 6862

关于OleDbCommand中操作数据库的几种方法的区别

在vb.net中利用OleDb的OleDbCommand类操作数据库,有以下这些方法:   ExecuteNoQuery() 返回值类型integer,常用来执行增删改操作,返回操作影响的行数 ...
  • bigheadsheep
  • bigheadsheep
  • 2012-12-28 11:01:11
  • 6579
收藏助手
不良信息举报
您举报文章:使用OleDbCommand对象更新SQL Server中的二进制文件
举报原因:
原因补充:

(最多只允许输入30个字)