上传照片(WinForm)

B/S的系统上传图片直接保存到文件夹中。C/S的系统上传图片要把图片存到数据库中,SQL Server把数据库字段设为ImageOracle把数据库字段设为BLOB

图片上传到数据库中的代码。

C#code

   //浏览图片

       private void btnUp_Click(object sender, EventArgs e)

       {

           OpenFileDialog ofd =new OpenFileDialog();

           ofd.Title = "选择要上传的图片";

           ofd.Filter = "AllFiles(*.*)|*.*|位图(*.bmp)|*.bmp|JPEG(*.jpg)|*.jpg";

           ofd.ShowDialog();

           textBox1.Text = ofd.FileName;

           if (!File.Exists(ofd.FileName))

           {

               MessageBox.Show("照片为空");

               return;

           }

       }

 

 

       //上传保存到数据库

       private void btnUpLoad_Click(object sender, EventArgs e)

       {

           string strPath =txtbImage.Text.Trim();

           FileStream fs =new FileStream(strPath, FileMode.Open, FileAccess.Read);

           byte[] byteFile = new byte[fs.Length];

           fs.Read(byteFile, 0, (int)fs.Length);

           fs.Close();

           SqlConnection conn =new SqlConnection("Data Source=.;InitialCatalog=Test;Integrated Security=True");

               try

               {

                   SqlCommand cmd =new SqlCommand();

                   cmd.Connection = conn;

 

                   string strSql = "insert into test(FileName,Img)Values(@FileName,@Img)";

                   cmd.CommandText =strSql ;

                   //cmd.Parameters.AddWithValue("@FileName",strPath);

                   //cmd.Parameters.AddWithValue("@Img",byteFile);

                   //或者

                   SqlParameter[]parameters = new SqlParameter[2];

                   parameters[0] = new SqlParameter("@FileName", SqlDbType.NVarChar,200);

                   parameters[0].Value = strPath;

                   parameters[1] = new SqlParameter("@Img", SqlDbType.Image,int.MaxValue);

                   parameters[1].Value = byteFile;

                   cmd.Parameters.AddRange(parameters);

                   conn.Open();

                   cmd.ExecuteNonQuery();

                   conn.Close();

                   MessageBox.Show("上传成功");

               }

               catch

               {

                   conn.Close();

                   MessageBox.Show("上传失败!");

               }

       }

       //读到图片显示到PictureBox

       private void btnDownLoad_Click(object sender, EventArgs e)

       {

           byte[] bytFile;

           SqlConnection conn =new SqlConnection("Data Source=.;InitialCatalog=Test;Integrated Security=True");

               try

               {

                   SqlCommand cmd =new SqlCommand();

                   string strSql = "select img from test whereID=3";

                   cmd.Connection = conn;

                   cmd.CommandText = strSql;

                   conn.Open();

                   SqlDataReader sdr =cmd.ExecuteReader();

                   if (sdr.Read())

                   {

                       bytFile = (Byte[])sdr["Img"];

                   }

                   else

                   {

                       bytFile = new byte[0];

                   }

                   sdr.Close();

                   conn.Close();

                   //通过内存流MemoryStream

                   //byte[]数组fileContent加载到Image中并赋值给图片框的Image属性,

                   //让数据库中的图片直接显示在窗体上。

                   MemoryStream ms =new MemoryStream(bytFile, 0,bytFile.Length);

                   this.picImage.Image = Image.FromStream(ms);

                   //关闭内存流

                   ms.Close();

               }

               catch

               {

                   conn.Close();

                   MessageBox.Show("失败");

               }

       }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值