WPF点击按钮选择本地图片上传到数据库并显示在Image控件里

本文介绍了一个使用C#编写的程序,该程序通过Oracle数据库API更新指定记录中的图片数据。程序首先打开一个文件对话框让用户选择要上传的图片,然后读取选中图片的字节流并将其更新到数据库中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System.IO;
using Microsoft.Win32;
using Oracle.DataAccess.Client;


        private void Button_Upload_Click(object sender, RoutedEventArgs e)
        {
            Stream ms;
            byte[] picByte;
            OpenFileDialog openFileDialog = new OpenFileDialog
            {
                Filter = "图像文件|*.jpg;*.png;*.jpeg;*.bmp;*.gif|所有文件|*.*"
            };
            openFileDialog.InitialDirectory = @"C:\Users\Administrator\Desktop";//文件选择的默认路径

            if ((bool)openFileDialog.ShowDialog())
            {
                if ((ms = openFileDialog.OpenFile()) != null)
                {
                    picByte = new byte[ms.Length];
                    ms.Position = 0;
                    ms.Read(picByte, 0, Convert.ToInt32(ms.Length));
                    string updateString = "UPDATE BDCFJ.T_PZ T SET ZP =:照片 WHERE BSM = '" + Label_Bsm.Content + "'";
                    OracleCommand oraCmd = new OracleCommand(updateString, Connection.oraConn);
                    oraCmd.Parameters.Add(new OracleParameter("照片", OracleDbType.Blob));
                    oraCmd.Parameters["照片"].Value = picByte;
                    Connection.oraConn.Open();
                    try
                    {
                        int result = oraCmd.ExecuteNonQuery();
                        if (result < 1)
                        {
                            MessageBox.Show("上传照片失败,请重新上传!","提示");
                        }
                        else
                        {
                            MessageBox.Show("成功上传照片!");
                            Image_New.Source = new BitmapImage(new Uri(openFileDialog.FileName));
                        }
                    }
                    catch (Exception ee)
                    {
                        MessageBox.Show("抱歉,出现错误:\n" + ee.ToString(),"提示");
                    }
                    finally
                    {
                        Connection.oraConn.Close();
                        ms.Close();
                    }
                }
            }
            else
            {
                return;
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值