将图片存入数据库

 存入数据库的代码:
// 把图片转换成byte[]
MemoryStream ms=new MemoryStream();
byte[] imagedata=null;
Image.FromFile("c://a.gif").Save(ms,System.Drawing.Imaging.ImageFormat.Gif );
imagedata=ms.GetBuffer ();

// 生成Sql
string sql ="Insert Into 你的表名 (Image字段) values(@filedata)";
SqlParameter p=new SqlParameter("@filedata",SqlDbType.Image);
p.value=imagedata;
// 执行Sql

 

 

 

 

 


private void button2_Click(object sender, System.EventArgs e)
{
try
{
System.IO.FileInfo fs = new System.IO.FileInfo(this.filename);
if (!fs.Exists)
{
MessageBox.Show("无效的文件名!");
return;
}
//创建一字节数组,用来存储图像文件.(数组的长度是图像文件的长度)
byte[] Content=new byte[fs.Length];
//打开文件并用他初始化一个文件流对象
FileStream ImageFileStream=fs.OpenRead();
//将文件内容写入字节数组
ImageFileStream.Read(Content,0,Content.Length);
//关闭文件流
ImageFileStream.Close();

//创建一个Sql命令对象,用来插入记录
System.Data.OleDb.OleDbCommand mycmd = new System.Data.OleDb.OleDbCommand(updatesql,DB.OleConn());
mycmd.CommandType = CommandType.StoredProcedure;
mycmd.Parameters.Add("@image",System.Data.OleDb.OleDbType.VarBinary);
mycmd.Parameters.Add("@bh",OleDbType.VarChar,20);

mycmd.Parameters["@image"].Value = Content;
mycmd.Parameters["@bh"].Value =bh;


//打开数据库连接
if (mycmd.Connection.State!=ConnectionState.Open)
{
mycmd.Connection.Open();
}
//执行 Sql 语句
mycmd.ExecuteNonQuery();
//关闭数据库连接
mycmd.Connection.Close();

MessageBox.Show("图像文件 " + fs.FullName + " 成功上传到数据库!");
this.filename ="";
myds.Tables[0].Clear();
myda.Fill(myds,"A");
//mybind.Position =0;
//this.Showimage();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

this.button2.Enabled = false;
}

 

 

 

 

 

 

 

byte[] buffer;

// 1)磁盘文件中加载文件
System.IO.FileStream fs = new System.IO.FileStream("文件名", System.IO.FileMode.Open);
buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);

// 2)从表单读取上传的文件 File1 为文件上传的 HTML 控件
System.IO.Stream stream = this.File1.PostedFile.InputStream;
buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);

// 请任选以上一种获取图片数据


// 写入数据库
System.Data.OleDb.OleDbParameter parameter = new System.Data.OleDb.OleDbParameter("@Image", System.Data.OleDb.OleDbType.Binary);
parameter.Value = buffer;

string insertCommand = "INSERT [表](字段) VALUES(@Image);";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(insertCommand, conn);
cmd.Parameters.Add(parameter);
cmd.ExecuteNonQuery();


// 读取图片的代码,我就不写,忙没时间。其实很简单就是查询一下而已。
// 读取图片时,从数据库中把二进制数据赋值到 byte[] 数组中
this.Response.ContentType = "image/JPEG"; // 设置 MIME 类型
this.Response.BinaryWrite(buffer); // 输出二进制数据

 

 

 

简洁有效的方法:顶顶,狂顶!!

create table qqview(photo image)--建表
go
insert qqview
select * from openrowset(bulk N'd:/壁纸/10.jpg',single_blob) a --N'd:/壁纸/1.jpg'为路径和图片名

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值