网站链接: 我爱捣鼓
当前位置: 首页 > web开发  > Asp.net/C#

Asp.net/C#从SQL数据库读取图片写入图片具体实现代码

2021/4/13 21:13:52

前两天做项目需要实现Asp.net/C#从SQL数据库读取和写入图片,今天我就将实现过程和大家分享一下,如果大家有什么更优方案,可以和我交流一下。1、将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型我们将使用如下的语句创建数据库表Studen…

前两天做项目需要实现Asp.net/C#从SQL数据库读取和写入图片,今天我就将实现过程和大家分享一下,如果大家有什么更优方案,可以和我交流一下

1、将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型

我们将使用如下的语句创建数据库表StudentInfo:

CREATE TABLE [dbo].[StudentInfo]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Age] [int] NULL,
[Sex] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[Class] [varchar](15) COLLATE Chinese_PRC_CI_AS NULL,
[Hobby] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Picture] [image] NULL
)

2、用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。主要代码如下:

private void button1_Click(object sender, EventArgs e)
{
  openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP";
    if(openFileDialog1.ShowDialog()==DialogResult.OK)
    {
      string fullpath =openFileDialog1.FileName;//文件路径
      FileStream fs = new FileStream(fullpath, FileMode.Open);
byte[] imagebytes =new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));
//打开数据库
SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05");
con.Open();
SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con);
com.Parameters.Add("ImageList", SqlDbType.Image);
com.Parameters["ImageList"].Value = imagebytes;
       com.ExecuteNonQuery();
       con.Close();
     }    
}

实现本实例主要是利用SqlDataReader从数据库中把Image字段值读出来,赋给一个byte[]字节数组,然后使用MemoryStream类与Bitmap把图片读取出来。主要代码如下:

private void button1_Click(object sender, EventArgs e)
{
    byte[] imagebytes = null;
    //打开数据库
    SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05");
    con.Open();
    SqlCommand com = new SqlCommand("select top 1* from tb_09", con);
    SqlDataReader dr = com.ExecuteReader();
    while (dr.Read())
    {
imagebytes = (byte[])dr.GetValue(1);
    }
    dr.Close();
    com.Clone();
    con.Close();
    MemoryStream ms = new MemoryStream(imagebytes);
    Bitmap bmpt = new Bitmap(ms);
    pictureBox1.Image = bmpt;
}

以上就是通过Asp.net/C#从SQL数据库读取、写入图片的具体实现代码,感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!

相关资讯

  • C#怎么获取文件夹里所有的图片文件?

    在实际的程序开发中,我们经常需要获取某个文件夹下的所有图片,用到了C#的DirectoryInfo、GetFiles等文件操作方法,具体实现如下://自定义一个结构public struct sFileInfo{ public string FileName; public DateTime FileCreateTime;}protected void Page_Load(…

    2021/3/4 21:48:01
  • c#实现日期时间与unix时间戳互相转换

    为什么使用时间戳?关于Unix时间戳,大概是这个意思,从1970年0时0分0秒开始到现在的秒数.使用它来获得的是一个INT值,储存在数据库里只要使用INT格式就可以了,方便数据库进行排序,搜索,而且比datetime格式更节省数据库空间。 /// <summary> /// Uni…

    2021/3/4 21:40:22