winform 中往数据库中添加图片的两种方式之一

方法一:在数据库中添加图片名字,然后把图片存在指定的文件夹中

           这种方法存起来简单,但是删除的时候麻烦。

           存:在数据库中建一个文本字段(access)或者varchar字段(sqlserver)长度能放上一张图片即可

                 过程:就是一般的存的insert into 

                          举个栗子:sql数据库中有一个id字段 自增类型 一个name字段,用于存放图片名称的类型是varchar类型

                          这winform界面中你可以拖动一个TextBox,用于存放路径,一个Button这个就不说了,还有一个openFileDialog

                         if (this.openFileDialog1.ShowDialog() == DialogResult.OK)

                          {

                               this.textBox1.Text = openFileDialog1.FileName;

                          } //打开路径,必不可少的     这些都是是在button单击事件里完成的

                          if (openFileDialog1.FileName.Length > 0) // 判断openFileDialog1路径的长度

                           {

                                  string oldName = openFileDialog1.FileName;            //定义一个string类型的变量 用于存放【文件路径】

                                   string[] splitName = oldName.Split('.');                     //为获取文件的扩展名做准备的

                                   string ext = splitName[splitName.Length - 1];          //文件的扩展名

                                    if (ext == "jpg" || ext == "gif" || ext == "bmp" || ext == "JPG")   //限制上传图片的格式

                                    {

                                         string dbName = DateTime.Now.ToString("yyyyMMddhhmmss") + "." + ext; //给上传的图片起个名字!以时间命名

                                         string newName = AppDomain.CurrentDomain.BaseDirectory  + dbName;  //新路径!这是个相对路径

                                         File.Copy(oldName, newName, true);  //把文件从以前的路径复制到新的路径中去

                                         //下面就开始添加到数据库里面了

                                         string constring="";//数据库的连接字符串

                                         using (SqlConnection con=new SqlConnection (constring))

                                          {

                                              con.open();

                                              stirng sql="insert into shujukuname (name) values(@name)"; //因为id自增的这里只需要添加图片名称

                                              SqlCommand cmd = new SqlCommand(sql,con);

                                              cmd.Parameters.Add("@name",SqlDbType.VarChar).Value=TextBox1.Text.Trim();

                                              cmd.ExecuteNonQuery();

                                              con.Close();

                                          }

                                    }                     

                           }                                                                                              //这样就添加完成了

            显示图片:  这里一定要有一个PictureBox1

                          要从数据库中取出这个name

                         using (SqlConnection con=new SqlConnection (constring))

                         {

                              string sql="select name from shujukuname where id=' 1'   ";//当id=1的时候查询的图片的名称

                               SqlDataAdapter da = new SqlDataAdapter(sql, con);

                               con.Open();

                               DataTable dt=new  DataTable();

                               da.Fill(dt);

                               string name =dt.Rows[0]["name"].ToString();

                               con.Close();                          //这样就获取出name来了,然后进行显示

                         }

                               string path=Application.StartupPath + "//"+ name;  //一张图片的路径

                               if(File.Exists(path)) //根据这个路劲显示有没有这张图片

                               {

                                      PictureBox1.Image=Image.FromFile(path);                  //PictureBox1显示的path路径的图片

                               }

                              else

                                {

                                        PictureBox1.Image=Image.FromFile(Application.StartupPath + "//" +默认图片);  //PictureBox1显示的默认的的图片

                                }

               今天写这一个吧!如果有发现不准确的或者错误的或者有什么疑问的请直接留言或者联系我QQ81704239

               谢谢朋友们给我提出宝贵的建议

转载于:https://www.cnblogs.com/Star-myfly/archive/2011/08/12/2136489.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值