数据库存储图片和读取图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;

namespace WindowsFormsApplication2
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();
            DialogResult isok = op.ShowDialog();
            if (isok==DialogResult.OK)
            {
                //公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。
                FileStream fs = new FileStream(op.FileName, FileMode.Open);//mode一个常数,用于确定如何打开或创建文件。
                Image img = System.Drawing.Bitmap.FromStream(fs);
                pictureBox1.Image = img;
                fs.Close();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();
            DialogResult isok = op.ShowDialog();
            if (isok == DialogResult.OK)
            {
                //读取图片存入数据库
                FileStream fs = new FileStream(op.FileName, FileMode.Open);
                BinaryReader br = new BinaryReader(fs);//二进制读取器
                byte[] buffer=new byte[fs.Length];//二进制字节数组
                buffer=br.ReadBytes((int)fs.Length);
                SqlConnection conn = new SqlConnection("server=.;database=car;uid=sa;pwd=123");
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "insert into pic values(4,@buffer)";
                cmd.Parameters.Clear();
                cmd.Parameters.Add("@buffer",buffer);
                conn.Open();
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                cmd.CommandText = "select top 1 * from pic order by code desc";
                SqlDataReader dr = cmd.ExecuteReader();
                byte[] by = new byte[fs.Length];
                if (dr.Read())
                {
                    by=(byte[])(dr["pics"]);
                }
                MemoryStream ms = new MemoryStream(by);
                Image img = System.Drawing.Bitmap.FromStream(ms);
                pictureBox1.Image = img;
            }
        }
    }
}
时间: 2024-10-10 17:29:08

数据库存储图片和读取图片的相关文章

Oracle数据库插入图片和读取图片

package com.basicSql.scroll_page; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import j

SDWebImage缓存图片和读取图片

NSString *urlStr: NSUrl *url = [NSURL URLWithString:urlStr]; //缓存图片 SDWebImageManager *manager = [SDWebImageManager sharedManager]; if (![manager diskImageExistsForURL:url]) { [manager downloadWithURL:url options:0 progress:^(NSInteger receivedSize,

aspnetcore 图片处理 读取图片大小,处理图片尺寸问题

先写参考网址吧: https://devblogs.microsoft.com/dotnet/net-core-image-processing/ 反正百度是个坑,根本查不到任何东西. 原文地址:https://www.cnblogs.com/davies/p/12229760.html

WinForm实现保存图片,读取图片(Stream流的形式)

直接将图片保存到数据库,可能会导致数据库压力比较大,当然这样有利于图片数据的迁移和备份. 这种方法只适合于保存用户头像等较小的图片. //读取图片 if (this.openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) {  pathName = this.openFileDialog1.FileName; System.Drawing.Image img = System.Drawing.Image.From

C# 图片数据库存储、读取页面展示

一个网站,图片数据是一定存在的:图片存储如何处理,有很多方式. 自己总结两种:1.将图片保存为静态文件形式:(优点:文件容易转移.备份:缺点:文件丢失不易恢复)2.将图片转换为字节流获其他方式获取图片完整数据进行存储(优点:数据库保存,不易丢失:缺点:数据库空间增长较快) 之前图片保存是通过保存文件名称等基本信息,未对图片的原始内容进行处理:最近 想换种方式进行图片数据保存:特记录. 保存文件完整信息,常用的方式是将文件转换为二进制流,保存进数据库,当然也可以保存图片为base64 数据流. 1

Windowform 窗体关联数据库存储,读取图片,参考代码

namespace flowlayoutpanel_容器 { public partial class picturebox : Form { public picturebox() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //从硬盘上读取图片显示在界面 openFileDialog1.Filter = "@.Jpg|*.jpg|@.Png|*.png|@.Jif|*.

SQL 2008存储图片和SQL 2008读取图片

用SQL Server存储文字数据很容易实现,如果用SQL Server存储图片呢?大家有没有实现思路呢?现在我用一个Demo来为大家提供一种在SQL Server中存储图片的思路. 场景:在superPhoto文件夹中,有三位NBA超级巨星的图片需要存储在数据库中,他们分别是保罗.罗斯和德隆,文件内容如下: 有了需求,下面讲实现.实现过程分为3个步骤. 步骤1:我们需要在数据库test中建立T_superStar表,并向表中插入三位球星的信息. create table T_superStar

C#从SQL server数据库中读取l图片和存入图片

原文:C#从SQL server数据库中读取l图片和存入图片 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类.BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中.主要代码如下: private void button1_Click(object sender, EventArgs e)

[转]asp.net mvc 从数据库中读取图片

本文转自:http://www.cnblogs.com/mayt/archive/2010/05/20/1740358.html 首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下: public class ImageResult : ActionResult { public ImageFormat ContentType { get; set; } public Image image { get; set; } public strin