CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

如何向sql数据库里添加图片

楼主zk911(尘埃)2005-10-28 10:20:34 在 .NET技术 / C# 提问

我建了一张表   名为information  
  现在我想往表里的pic字段里添加一张图片  
  请朋友们指点一下   该功能将如何实现?  
  小弟在此谢过了!!!  
  问题点数:50、回复次数:14Top

1 楼koenemy(小妮她爹--给孩子起个名太费劲)回复于 2005-10-28 10:24:32 得分 2

insert   yourtable   (image)values('d:\a.gif')Top

2 楼jxufewbt(我的目标是5星)回复于 2005-10-28 10:29:54 得分 2

insert   into   Table(image)   values('...\xxx.gif')Top

3 楼unwonted(小耀)回复于 2005-10-28 11:29:36 得分 2

在pic字段中插入该图片的路径即可,一般为相对路径Top

4 楼singlepine(小山)回复于 2005-10-28 11:34:25 得分 10

http://dotnet.aspx.cc/ShowDetail.aspx?id=2A5DD7C6-A45A-48AB-A2E8-342A29F17506Top

5 楼sxlfybb(房客)回复于 2005-10-28 11:50:16 得分 17

这个是我在我的机器上面作的测试,好像没有什么问题,你看一下.  
  针对你的实际情况,换成SQL数据库时,连同SqlClient命名空间也换了.  
  由mdb向SQL转变应该不是很大的问题.  
  (三个button   ,一个文本输入,一个picturebox)  
   
  private   void   Form1_Load(object   sender,   System.EventArgs   e)  
  {  
  this.button2.Enabled   =   false;  
  this.button2.Text   =   "上传至库";  
  this.button1.Text   =   "上传文件";  
  this.button3.Text   =   "根据ID显示图片";  
   
  this.strSqlConn   =   @"Data   Source=""F:\C#\ImageToDb\bin\Debug\db.mdb"";Provider=""Microsoft.Jet.OLEDB.4.0"";";  
  }  
   
  private   void   button2_Click(object   sender,   System.EventArgs   e)  
  {  
  if   (this.textBox1.Text   !=   string.Empty   )  
  {  
  try  
  {  
  fs   =   new   FileStream(   this.filename,FileMode.Open   );  
  bytes   =   new   byte[(int)fs.Length];  
  int   intFile   =   fs.Read(   bytes,0,bytes.Length);  
  if   (intFile>0)  
  {  
  conn   =   new   OleDbConnection(   this.strSqlConn   );  
  this.strSqlCmd   =   "Insert   into   tab   (Img,title,des)   values   (@ph,@title,@des)"   ;  
  cmd   =   new   OleDbCommand(   strSqlCmd,conn   );  
  conn.Open();  
  cmd.Parameters.Add("@ph",OleDbType.Binary);  
  cmd.Parameters.Add("@title",OleDbType.VarChar);  
  cmd.Parameters.Add("@des",OleDbType.LongVarWChar);  
  cmd.Parameters["@title"].Value   =   "标题";  
  cmd.Parameters["@ph"].Value   =   this.bytes;  
  cmd.Parameters["@des"].Value   =   "这个是备注说明字段";  
  int   intS   =   cmd.ExecuteNonQuery();  
  if   (intS<0)  
  {  
  MessageBox.Show("更新失败");  
  }  
  MessageBox.Show("成功更新");  
  }  
  }  
  catch(Exception   ex)  
  {  
  MessageBox.Show(   ex.Message   );  
  }  
  finally  
  {  
  conn.Close();  
  fs.Flush();  
  fs.Close();  
  }  
  }  
  else  
  {  
  MessageBox.Show("请输入准考证号");  
  }  
  }  
   
  private   void   button3_Click(object   sender,   System.EventArgs   e)  
  {  
  try  
  {  
  conn   =   new   OleDbConnection(   this.strSqlConn);  
  this.strSqlCmd   =   "Select   img   From   tab   Where   id   =   "   +   this.textBox1.Text   +   "";  
  conn.Open();  
  cmd   =   new   OleDbCommand(   strSqlCmd,conn   );  
  object   obj   =   cmd.ExecuteScalar();  
  this.bytes   =   (byte[])obj;  
  using   (   MemoryStream   ms   =   new   MemoryStream(   bytes,0,bytes.Length   ))  
  {  
  Bitmap   bmp   =   new   Bitmap(   ms   );  
  this.pictureBox1.Image   =   bmp;  
  }  
  }  
  catch(Exception   ex)  
  {  
  MessageBox.Show(ex.Message,"出错了!",MessageBoxButtons.OK,MessageBoxIcon.Error);  
  }  
  finally  
  {  
  conn.Close();  
  }  
  }  
  Top

6 楼designonline(meetweb)回复于 2005-10-28 11:51:19 得分 1

通过存储过程向数据库插入二进制的字段保存Top

7 楼zk911(尘埃)回复于 2005-10-28 16:09:11 得分 0

我想把图片先存到pictureBox.Image里   然后将pictureBox.Image里的值再存到  
  数据库pic字段里  
  请问这种方法对不?  
  insert   into   information(pic)   values('"+pictureBox.Image+"')  
  请指点一下  
     
  谢谢过路的朋友Top

8 楼sxlfybb(房客)回复于 2005-10-28 16:19:16 得分 2

insert   into   information(pic)   values('"+pictureBox.Image+"')  
   
  这样写是不对地,要使用存储过程了Top

9 楼zk911(尘埃)回复于 2005-10-28 16:27:22 得分 0

如何存储成二进制流呀  
  能指点一下吗?  
  Top

10 楼zhzuo(秋枫)回复于 2005-10-28 16:46:50 得分 13

 
  数据库中操作图片  
  How   To   Read   and   Write   BLOB   Data   by   Using   ADO.NET   with   Visual   C#   .NET  
  http://support.microsoft.com/default.aspx?scid=kb;EN-US;309158  
   
   
  把任意类型的文件保存到SQL   Server  
  http://dotnet.aspx.cc/ShowDetail.aspx?id=EY1XLDYV-PIDF-43LO-1WFL-FMY5ALE1F635Top

11 楼zk911(尘埃)回复于 2005-10-28 16:49:32 得分 0

如果我的pictureBox.Image里已经存放了二进制流数据  
  那么该用什么方法能将pictureBox.Image里的流存放到我指定的pic字段里呢Top

12 楼zk911(尘埃)回复于 2005-11-08 16:55:07 得分 0

请朋友们帮忙解决一下  
  谢了Top

13 楼sxlfybb(房客)回复于 2005-11-09 10:25:13 得分 1

难道我前面写的代码还解决不了你的问题吗?Top

14 楼zk911(尘埃)回复于 2005-11-11 15:58:59 得分 0

//利用选择文件对话框选取图像文件  
  OpenFileDialog   openFileDialog1=new   OpenFileDialog();  
  openFileDialog1.Filter="*.jpg;*.bmp;*.*|*.jpg;*.bmp;*.*";  
  //如果用户选取了图像文件  
  if(openFileDialog1.ShowDialog()==DialogResult.OK)  
  {  
  //产生Stream流对象  
  Stream   myStream   =   openFileDialog1.OpenFile();  
  int   length=(int)myStream.Length;  
  //产生字节数组对象  
  byte[]   bytes=new   byte[length];  
  //读取图像文件,将数据放入字节数组中。  
  myStream.Read(bytes,0,length);  
  myStream.Close();  
   
  上面的方法是将流存到了bytes里,我想请问用什么办法可以把bytes里的数据直接添加到数据库  
  里的pic字段里  
   
  请路过的好心朋友指点一下  
  小弟在此谢过了!!!!!!!!!!!!!Top

相关问题

  • 如何给SQL数据库添加用户
  • 如何给SQL数据库添加用户?
  • 如何上传图片到SQL数据库中~
  • 如何把图片保存到sql数据库中
  • VC中如何将图片导入SQL数据库?
  • 如何将JPEG图片存储到SQL数据库?
  • 如何通过程序添加sql数据库和账号??sos!!给50分
  • 如何将SQL数据库中的图片显示到Image控件中?
  • 100分求助:Winform下如何浏览SQL数据库中里的图片?
  • 问一下。在WINFROM中,如何保存图片。。是SQL数据库。

关键词

  • 图片
  • button
  • text

得分解答快速导航

  • 帖主:zk911
  • koenemy
  • jxufewbt
  • unwonted
  • singlepine
  • sxlfybb
  • designonline
  • sxlfybb
  • zhzuo
  • sxlfybb

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo