C# byte[]如何写入数据库

2025-10-21 08:12:55

1、百度图库选一张图。

C# byte[]如何写入数据库

2、在Visual Studio2017新建:

一个窗体From1、两个Button命名Btn_ImgLoad (打开一张图)、Btn_Save(保存)一个picturebox命名为Img_box(显示一张图)和一个openFileDialog1控件,布局如下图

C# byte[]如何写入数据库

3、//添加需要的using

using System;

using System.Data;

using System.Drawing;

using System.Windows.Forms;

using System.Data.SqlClient;

using System.IO;

C# byte[]如何写入数据库

4、//设置变量名称

 //变量名称

        public static SqlConnection conn;

        public static SqlCommand cmd ;

        Stream ms;

C# byte[]如何写入数据库

5、写一个图片函数

       //图片函数

        private byte[] GetImageBytes(Image image)

        {

            Bitmap bmp = new Bitmap(image);

            MemoryStream mstream = new MemoryStream();

            bmp.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);

            mstream.Seek(0, SeekOrigin.Begin); //及时定位流的开始位置

            byte[] byteData = new Byte[mstream.Length];

            mstream.Position = 0;

            mstream.Read(byteData, 0, byteData.Length);

            mstream.Close();

            return byteData;

        }

C# byte[]如何写入数据库

6、 //打开一张图片保存到picturebox中

        private void Btn_ImgLoad_Click(object sender, EventArgs e)

        {

            openFileDialog1.Filter = "*.jpg|*.jpg|*.bmp|*.bmp";//指定openFileDialog控件打开的文件格式

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP";

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

            {

                if ((ms = openFileDialog1.OpenFile()) != null)

                {

                    //获取当前选择的图片

                    this.Img_Box.Image = Image.FromStream(this.openFileDialog1.OpenFile());

                    //获取当前图片的路径

                    string path = openFileDialog1.FileName.ToString();

                    //将制定路径的图片添加到FileStream类中    

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

                    //通过FileStream对象实例化BinaryReader对象

                    BinaryReader br = new BinaryReader(fs);

                    //通过BinaryReader类对象的ReadBytes()方法将FileStream类对象转化为二进制数组

                    byte[] imgBytesIn = br.ReadBytes(Convert.ToInt32(fs.Length));

                }

                else

                {

                    MessageBox.Show("您选择的图片不能被读取或文件类型错误!", "错误 ", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                }

            }

        }

C# byte[]如何写入数据库

C# byte[]如何写入数据库

7、 //启动时设置数据库信息

        private void Form1_Load(object sender, EventArgs e)

        {

            conn = new SqlConnection();

            conn.ConnectionString = @"Data Source=你的数据库实例名称;Initial Catalog=BDProjectt2020;

                                      Integrated Security=SSPI;MultipleActiveResultSets=true;Connection Timeout=90";

            // 如果数据库关闭,则打开数据库

            if (conn.State == ConnectionState.Closed)

                try

                {

                    conn.Open();

                }

                catch (Exception ex)

                {

                    MessageBox.Show("打开数据库失败,请检查数据设置." + ex.Message, "消息提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                    return;

                }

        }

C# byte[]如何写入数据库

8、图片保存到数据库对应数据表事件,应根据自己的数据表字段写SQL语句

 //图片保存事件

        private void Btn_Save_Click(object sender, EventArgs e)

        {

            byte[] imageBytes = GetImageBytes(Img_Box.Image);

            string SqlStr = "INSERT INTO DBImg(ID,Name,Img)VALUES(1,'测试图片',@ImgData)";

            SqlCommand cmd = new SqlCommand(SqlStr, conn);

            SqlParameter param = new SqlParameter("ImgData", SqlDbType.VarBinary, imageBytes.Length);

            param.Value = imageBytes;

            // 如果数据库关闭,则打开数据库

            if (conn.State == ConnectionState.Closed)

                try{conn.Open();}

                catch (Exception ex)

                {MessageBox.Show("打开数据库失败,请检查数据设置." + ex.Message, "消息提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                 return;}

            cmd.Parameters.Add(param);

            int i = cmd.ExecuteNonQuery();

            MessageBox.Show(i + " 条图片数据保存成功");

        }

C# byte[]如何写入数据库

9、byte[]数据成功写入数据库中,可在数据表里查看到被保存的图片信息。

C# byte[]如何写入数据库

C# byte[]如何写入数据库

1、【1】自己或到百度图库准备一张图片。

【2】创建程序窗体和所需控件。

【3】添加所需using命名空间。

【4】设置变量名称。

【5】写一个图片处理函数方法

【6】创建选定图片事件。

【7】设置数据库相关信息。

【8】创建保存事件把图片保存到数据库中。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢