C# 图像保存到 数据库

        private void btnOK_Click(object sender, EventArgs e)
        {                      
            
            // 准备照片数据
            byte[] b = null;
            if (txtFilePath != "") // 文件路径
            {
                try
                {
                    Bitmap bmp = new Bitmap(txtFilePath);  // 图片位图件
                    MemoryStream fs = new MemoryStream();  // 内存流
                    bmp.Save(fs, System.Drawing.Imaging.ImageFormat.Gif); // 图像保存到内存流
                    b = new byte[fs.Length]; //  定义 内存流长度的 字节数组
                    fs.Position = 0;
                    fs.Read(b, 0, (int)fs.Length); // 内存流 读取到 字节数组
                    fs.Close();                    

                    //FileStream fs = new FileStream(txtFilePath, FileMode.Open, FileAccess.Read);
                    //int len = Convert.ToInt32(fs.Length);
                    //b = new byte[len];
                    //fs.Read(b, 0, len);
                    //fs.Close();
                }
                catch
                {
                    b = null;
                }
            }
                         

            // 更新数据
            try
            {               
                if (txtFilePath != "" )                
                {
                    sql = "update t_user set Photo=@Photo where CID=" + ID.ToString();     
                    MySqlParameter []parm = new MySqlParameter[1];
                    parm[0] = new MySqlParameter();
                    parm[0].ParameterName = "@Photo";
                    parm[0].MySqlDbType = MySqlDbType.Binary; // 二进制数据
                    parm[0].Value = b;
                    DBHelper.ExcuteSQL(sql, parm, CommandType.Text);
                }              
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "保存失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }            
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章