- 浏览: 67654 次
- 性别:
- 来自: 重庆
最新评论
利用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 2899症状:在SQL server 2000中打开表查看数据的时 ... -
归纳一下:C#线程同步的几种方法
2009-12-24 23:04 1350我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要 ... -
C#进度条的使用
2009-12-21 18:05 3593C#进度条的使用及开发 ... -
C#读取XML文件
2009-12-20 22:49 2942本文源自:http://blog.163. ... -
OpenFileDialog控件
2009-12-17 21:52 3513打开文件对话框(OpenFileDialog) ... -
vb.net数据库存取二进制文件
2009-12-10 21:15 3940利用Dataset可以方便的对SQL Server中的二进 ... -
access数据库用二进制储存图片,并在web页面显示
2009-12-09 22:10 1660储存:传入确定图片的唯一序列号id 和图片的保存路径fileP ... -
C# 怎样把二进制文件写入Access数据库
2009-12-09 22:09 2284OleDbConnection Mycon = new Ole ... -
c#_string与byte[]之间的转换
2009-10-28 18:48 1422先将stirng s 转换成byte[]存放到source中, ... -
C#_多线程编程
2009-10-28 18:47 863.NET将关于多线程的功 ... -
c#_使用Socket获取IP地址
2009-10-28 18:47 1823Socket socket = new Socket( Add ... -
c#_使用委派修改线程外构造的对象
2009-10-28 18:46 700//定义委派函数(参数与要线程中要执行的函数的参数一致)pub ... -
c#_判断Tcp连接是否可用(Connected)
2009-10-28 18:45 1834//use funciton isConnected to j ... -
c#_监听TCP连接请求
2009-10-28 18:44 13911、use TcpListenerTcpListener ls ... -
网页倒计时
2009-10-05 08:52 866<!DOCTYPE html PUBLIC " ... -
s2sh 中文问题解决
2009-04-13 00:12 878今天配置S2SH ,才发现有些东西,只必须自己亲自动手的,乱码 ...
相关推荐
"c#数据库操作二进制存取图片源码.rar"这个压缩包文件显然包含了一个示例项目,展示了如何在C#中将图片以二进制形式存储到数据库,并进行读取。这种做法通常用于存储无法直接作为文本的非结构化数据。 首先,我们来...
C#实现图片与二进制相互转换及数据库存储 本文主要介绍了C#实现把图片转换成二进制以及把二进制转换成图片的方法,并结合具体实例形式分析了基于C#的图片与二进制相互转换以及图片保存到数据库的相关操作技巧。 一...
【C# WebForm二进制文件存取实例】 在C# WebForm开发中,处理二进制文件(如图片、音频、视频等)是常见的需求。这个实例将深入讲解如何在C# WebForm环境中实现对二进制文件的读取和存储。下面,我们将详细探讨相关...
1. **读取图片文件**:使用编程语言(如Java、Python、C#)的内置函数读取图片文件,将其转换为二进制数据流。 2. **连接数据库**:建立与数据库的连接,这通常需要数据库驱动程序(如JDBC、ODBC)和正确的连接参数...
通常,我们不会直接将图像文件存储为二进制文件,而是将其转换为二进制数据,然后存储在数据库的BLOB(Binary Large Object)类型字段中。在SQL Server中,这种类型通常称为`varbinary(max)`。 1. **存储图像到...
在C#编程中,二进制文件的读写...通过熟练掌握`BinaryReader`和`BinaryWriter`的使用,开发者可以在C#中高效地处理二进制文件,实现数据的存取。在实际项目中,这是一项至关重要的技能,特别是在处理大量非文本数据时。
在C#编程中,数据库存取文件和下载是常见的任务,...总的来说,C#数据库存取文件和下载涉及数据库操作、文件I/O、HTTP响应以及安全策略等多个方面。通过理解这些概念和技术,开发者可以构建高效且安全的文件管理系统。
在C#中,存储和检索二进制数据,如图片,通常...总的来说,C#处理二进制图像数据涉及文件流操作、数据库交互以及Web应用程序中的用户输入处理。理解这些步骤对于开发涉及图像存储的任何.NET应用程序都是至关重要的。
在C#编程中,数据库存取图片涉及到的主要技术是数据库操作和二进制数据处理。以下将详细讲解如何使用C#来实现这一功能。 首先,我们需要了解基础的数据库概念。在C#中,通常会使用ADO.NET框架来与各种数据库(如SQL...
总结,C#图片数据库存取涉及数据库选择、数据交互方式、图片的二进制存储、元数据管理、查询和检索以及性能优化和安全措施等多个方面。理解并掌握这些知识点,能够帮助开发者构建出高效、安全的图片管理系统。
综上所述,C#数据库存取图片涉及到数据库选择、图片编码、ADO.NET操作、SQL语句编写、性能优化和安全性等多个方面。理解并掌握这些知识点,能帮助开发者高效且安全地实现图片的数据库存储和读取功能。
有一个员工表Employee,需要保存员工照片(Photo)到数据库(sql server)上。员工照片对应的字段是varbinary(max),也就是要存成二进制文件类型(这和以前讨巧地存图片文件路径就不相同了),默认可以为空。
.NET 中,图片、文件等二进制数据在数据库中的存取代码,代码里面演示的是C#保存Word文档到数据库的方法,完全可以换成图片等其他文件
将文件保存到数据库中实际上是将文件转换成二进制流后,将二进制流保存到数据库相应的字段中。在 SQL Server 中该字段的数据类型是 Image,在 Access 中该字段的数据类型是 OLE 对象。 在 C# 中,我们可以使用以下...
本主题将深入探讨如何使用C#语言在VS2008中进行二进制图片的存取操作,这对于构建动态网站和Web应用程序至关重要。 一、二进制数据与图片的关系 图片本质上是二进制数据的集合,这些数据按照特定的格式(如JPEG、...
"使用二进制存取用户头像"这个主题涉及到如何将图像数据以二进制形式存储并从数据库中检索,以提高数据传输速度和节省存储空间。下面将详细介绍这个过程及其相关知识点。 一、二进制数据存储 1. 图像文件格式:...
图片在数据库中的存取是一个多步骤的过程,涉及数据类型的选择、文件的二进制转换、存储策略以及高效的查询方法。 首先,我们需要了解数据库如何存储非结构化数据如图片。常见的方法有两种:一是将图片文件直接存储...
在C#中,我们可以利用`FileStream`类来读取文件,并将其转换为二进制数组,然后再将这些二进制数据存储到数据库中。下面是一个具体的实现示例: ```csharp // 图片存储 protected void Button1_Click(object sender...
1. **文件流与二进制数据**:在C#中,文件通常以字节流的形式处理。`System.IO.FileStream`类用于读取文件内容到内存中,然后可以将其转换为`byte[]`数组,这是大多数数据库系统接受的二进制数据格式。 2. **ASP...