C#读写数据库Image字段实例
2010-05-05 16:29
387 查看
数据库的Image字段保存的是字节,所以写入数据库Image字段和从数据库Image字段读取的内容都应该为字节.
1、数据库Image字段读写文件
写文件:写文件的过程为将文件以流文件形式打开并将内容读取到一个byte数组,然后将此byte数组写入数据库的Image字段。
源码:
FileInfo finfo=new FileInfo("文件名"); //绝对路径
if(finfo.Exists)
{
SqlConnection conn=new SqlConnection("连接字符串");
SqlCommand InsertCommand=new SqlCommand();
InsertCommand.Connection=conn;
InsertCommand.CommandText="Insert into 表名(Image字段名)
values(@Content)";
InsertCommand.Parameters.Add("@Content",SqlDbType.Image,
(int)finfo.Length,"Image字段名"); //注意,此处参数Size为写入的
字节数
//读取文件内容,写入byte数组
byte[] content=new byte[finfo.Length];
FileStream stream=finfo.OpenRead();
stream.Read(content,0,content.Length);
stream.Close();
InsertCommand.Parameters["@Content"].Value=content; //为参数赋值
try
{
conn.Open();
InsertCommand.ExcuteNonQuery();
}
finally
{
conn.Close();
}
}
读文件:读文件的过程为从数据库的Image字段读取内容保存到byte数组,然后将此byte数组以文件流形式写入文件。
源码:
byte[] content;
SqlConnetion conn=new SqlConnection("连接字符串");
SqlDataAdapter da=new SqlDataAdapter("Select Image字段名 from
表名",conn);
DataSet ds=new DataSet();
da.Fill(da,"word");
DataRow dr=ds.Tables["word"].Rows[0]; //将读取的第一行内容保存到dr
content=(byte[])dr["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实现。文件中我提供了一个实例,要正常运行需要在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 = "Insert into MyEmployees(FirstName,LastName,Photo)
values(@FName,@LName,@Photo)";
SqlCommand command=new SqlCommand(comm);
command.Connection = conn;
//创建Parameter
command.Parameters.Add("@FName",SqlDbType.NVarChar);
command.Parameters[0].Value = textBox1.Text;
command.Parameters.Add("@LName", SqlDbType.NVarChar);
command.Parameters[1].Value = textBox2.Text;
command.Parameters.Add("@Photo",SqlDbType.Image);
command.Parameters[2].Value = imgByte;
其中imgByte为Byte数组,通过FileStream的Read填充的byte数据。
1、数据库Image字段读写文件
写文件:写文件的过程为将文件以流文件形式打开并将内容读取到一个byte数组,然后将此byte数组写入数据库的Image字段。
源码:
FileInfo finfo=new FileInfo("文件名"); //绝对路径
if(finfo.Exists)
{
SqlConnection conn=new SqlConnection("连接字符串");
SqlCommand InsertCommand=new SqlCommand();
InsertCommand.Connection=conn;
InsertCommand.CommandText="Insert into 表名(Image字段名)
values(@Content)";
InsertCommand.Parameters.Add("@Content",SqlDbType.Image,
(int)finfo.Length,"Image字段名"); //注意,此处参数Size为写入的
字节数
//读取文件内容,写入byte数组
byte[] content=new byte[finfo.Length];
FileStream stream=finfo.OpenRead();
stream.Read(content,0,content.Length);
stream.Close();
InsertCommand.Parameters["@Content"].Value=content; //为参数赋值
try
{
conn.Open();
InsertCommand.ExcuteNonQuery();
}
finally
{
conn.Close();
}
}
读文件:读文件的过程为从数据库的Image字段读取内容保存到byte数组,然后将此byte数组以文件流形式写入文件。
源码:
byte[] content;
SqlConnetion conn=new SqlConnection("连接字符串");
SqlDataAdapter da=new SqlDataAdapter("Select Image字段名 from
表名",conn);
DataSet ds=new DataSet();
da.Fill(da,"word");
DataRow dr=ds.Tables["word"].Rows[0]; //将读取的第一行内容保存到dr
content=(byte[])dr["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实现。文件中我提供了一个实例,要正常运行需要在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 = "Insert into MyEmployees(FirstName,LastName,Photo)
values(@FName,@LName,@Photo)";
SqlCommand command=new SqlCommand(comm);
command.Connection = conn;
//创建Parameter
command.Parameters.Add("@FName",SqlDbType.NVarChar);
command.Parameters[0].Value = textBox1.Text;
command.Parameters.Add("@LName", SqlDbType.NVarChar);
command.Parameters[1].Value = textBox2.Text;
command.Parameters.Add("@Photo",SqlDbType.Image);
command.Parameters[2].Value = imgByte;
其中imgByte为Byte数组,通过FileStream的Read填充的byte数据。
相关文章推荐
- C#读写数据库Image字段实例
- 第六章 用户权限管理(七) -- C#读写数据库Image字段
- c#读写MSSQL数据库image字段内容
- c#读写MSSQL数据库image字段内容
- C# 对SQL Server 中Image字段的读写
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- .net C#,access,MDB数据库BLOB二进制字段的读写
- C# 对SQL Server中Image字段的读写(2)
- 如何操作sqlserver 数据库的image字段[C#]
- C# 对SQL Server中Image字段的读写
- C#中解决插入数据库的某个字段类型为datetime 为空
- C#实例代码之抽奖升级版可以经表格数据导入数据库,抽奖设置,补抽
- 数据库字段类型对应C#字段类型
- DELPHI中对SQL SERVER中image、text字段的读写综述
- C#中读取数据库中Image数据
- SqlDataSource读取数据库的Image类型字段
- C# asp.net 导出数据库二进制字段到excel
- C#中通过使用Connection类来实现打开/关闭数据库的代码实例
- Web C#2.0 DataSet和Reader封装组件实现自动多数据库切换(含组件源码和实例)
- Hibernate识别数据库特有字段实例详解