- 浏览: 66065 次
- 性别:
- 来自: 重庆
最新评论
利用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 );
}
}
}
发表评论
-
SQL server无法执行查询,因为一些文件丢失或未注册等问题的解决
2010-07-12 13:22 2852症状:在SQL server 2000中打开表查看数据的时 ... -
归纳一下:C#线程同步的几种方法
2009-12-24 23:04 1325我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要 ... -
C#进度条的使用
2009-12-21 18:05 3550C#进度条的使用及开发 ... -
C#读取XML文件
2009-12-20 22:49 2908本文源自:http://blog.163. ... -
OpenFileDialog控件
2009-12-17 21:52 3476打开文件对话框(OpenFileDialog) ... -
vb.net数据库存取二进制文件
2009-12-10 21:15 3908利用Dataset可以方便的对SQL Server中的二进 ... -
access数据库用二进制储存图片,并在web页面显示
2009-12-09 22:10 1620储存:传入确定图片的唯一序列号id 和图片的保存路径fileP ... -
C# 怎样把二进制文件写入Access数据库
2009-12-09 22:09 2244OleDbConnection Mycon = new Ole ... -
c#_string与byte[]之间的转换
2009-10-28 18:48 1393先将stirng s 转换成byte[]存放到source中, ... -
C#_多线程编程
2009-10-28 18:47 832.NET将关于多线程的功 ... -
c#_使用Socket获取IP地址
2009-10-28 18:47 1705Socket socket = new Socket( Add ... -
c#_使用委派修改线程外构造的对象
2009-10-28 18:46 661//定义委派函数(参数与要线程中要执行的函数的参数一致)pub ... -
c#_判断Tcp连接是否可用(Connected)
2009-10-28 18:45 1747//use funciton isConnected to j ... -
c#_监听TCP连接请求
2009-10-28 18:44 13271、use TcpListenerTcpListener ls ... -
网页倒计时
2009-10-05 08:52 835<!DOCTYPE html PUBLIC " ... -
s2sh 中文问题解决
2009-04-13 00:12 857今天配置S2SH ,才发现有些东西,只必须自己亲自动手的,乱码 ...
相关推荐
c#数据库操作二进制存取图片源码.rar
自己写的代码,项目都在运行,决定可以使用,代码有注释,博客有说明,有问题还可以私信我,注意如果有axja的话需要把上传按钮事件在局部刷新中注册一下,不然取不到上传的文件
图片以二进制存取数据库
有一个员工表Employee,需要保存员工照片(Photo)到数据库(sql server)上。员工照片对应的字段是varbinary(max),也就是要存成二进制文件类型(这和以前讨巧地存图片文件路径就不相同了),默认可以为空。
.NET 中,图片、文件等二进制数据在数据库中的存取代码,代码里面演示的是C#保存Word文档到数据库的方法,完全可以换成图片等其他文件
这是一个C#.NET示例程序, 简单演示了如何使用C#操作SQLite数据库。同时演示了如何用C#讲图片二进制数据存储到数据库和从数据库读取图片二进制数据并显示在PictureBox.
图片在数据库中的存取,
C#+SQL实现图片存取的源代码
通过对ADO.NET技术特点的简要介绍,提出了对数据库中Image...该实例为数据库中多种二进制大对象类型的数据,包括图片、声音、视频及各种Office文档等进行存储与显示提供了一种可行的有效方法,并且给出部分程序源代码
c#中关于二进制流的读取问题 图片存取数据库问题 数据库问题
Database、Linq操作DataSet、Linq操作SQL、Linq操作Xml、Linq操作数组集合、触发器SQL文件、读取数据库表结构、二进制存取图片、交叉表、数据库管理、通过存储过程管理信息、通过视图修改信息、通用数据库连接等...
andorid sqlite数据库另类存取方法,对象存取,采用序列化把对象转换成二进制存取。同时读取的时候相反。
实例095 使用二进制存取用户头像 342 实例096 使用交叉表实现商品销售统计 345 实例097 通过视图修改职工信息 347 实例098 通过存储过程对职工信息进行管理 350 实例099 使用触发器添加、修改及删除...
实例095 使用二进制存取用户头像 342 实例096 使用交叉表实现商品销售统计 345 实例097 通过视图修改职工信息 347 实例098 通过存储过程对职工信息进行管理 350 实例099 使用触发器添加、修改及删除...
实例095 使用二进制存取用户头像 342 实例096 使用交叉表实现商品销售统计 345 实例097 通过视图修改职工信息 347 实例098 通过存储过程对职工信息进行管理 350 实例099 使用触发器添加、修改及删除职工...
实例095 使用二进制存取用户头像 342 实例096 使用交叉表实现商品销售统计 345 实例097 通过视图修改职工信息 347 实例098 通过存储过程对职工信息进行管理 350 实例099 使用触发器添加、修改及删除...
实例095 使用二进制存取用户头像 342 实例096 使用交叉表实现商品销售统计 345 实例097 通过视图修改职工信息 347 实例098 通过存储过程对职工信息进行管理 350 实例099 使用触发器添加、修改及删除...
实例095 使用二进制存取用户头像 342 实例096 使用交叉表实现商品销售统计 345 实例097 通过视图修改职工信息 347 实例098 通过存储过程对职工信息进行管理 350 实例099 使用触发器添加、修改及删除...
58 <br>0081 文本中首字母改为大写 59 <br>0082 C#随机数的产生 59 <br>0083 身份证从15位升至18位算法 60 <br>0084 十进制数转二进制数的算法 60 <br>0085 十进制数转八进制数的算法 61...
实例095 使用二进制存取用户头像 342 实例096 使用交叉表实现商品销售统计 345 实例097 通过视图修改职工信息 347 实例098 通过存储过程对职工信息进行管理 350 实例099 使用触发器添加、修改及删除职工...