利用OpenFileDialog 获取图片存储到数据库中

private void button1_Click(object sender, EventArgs e)
        {
            string fName;
            OpenFileDialog openFileDialog = new OpenFileDialog();//实例化
            openFileDialog.InitialDirectory = "e:\\141\\";//打开的默认路径
            openFileDialog.Filter = "图像文件 (*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG"; 
            openFileDialog.RestoreDirectory = true;
            openFileDialog.FilterIndex = 1;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                fName = openFileDialog.FileName;
                //textBox1.Text = File.ReadAllText(fName);
                FileStream fs=new FileStream (fName ,FileMode.Open );
                byte [] imgbt=new byte [fs .Length ];
                BinaryReader br = new BinaryReader(fs);
                imgbt = br.ReadBytes(Convert.ToInt32(fs.Length));
                string cnnstr = "server=.;User ID=sa;Password=admin;Database=student";

                SqlConnection conn = new SqlConnection(cnnstr);
                conn.Open();
               SqlCommand comm = new SqlCommand();
                comm.Connection = conn;
            

                string sql = "insert into a values('01',@image)";
                comm.CommandType = CommandType.Text;
                comm.CommandText = sql;
                comm.Parameters.Add("image", SqlDbType .Image   , imgbt.Length);
                comm.Parameters[0].Value = imgbt;
                comm.ExecuteNonQuery();
                conn.Close();
        }

再读取出来

            SqlDataReader dr = comm.ExecuteReader();
                      while (dr.Read())
            {
                if (dr["imagetest"] != DBNull.Value)    
                {
                    MemoryStream ms = new MemoryStream((byte[])dr["imagetest"]);//把照片读到MemoryStream里      
                    Image imageBlob = Image.FromStream(ms, true);//用流创建Image  
                    
                    pictureBox1.Image = imageBlob;//输出图片      
                }
                else//照片字段里没值,清空pb      
                {
                    pictureBox1.Image = null;
                }
            }

posted @   慢慢摸索  阅读(555)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示