从SQL 数据库中读取和存入图片问题

本文详细介绍了如何在SQL数据库中存储和读取图片,包括使用FileStream和BinaryReader将图片转换为字节流,通过SqlCommand插入数据库,以及使用SqlDataReader从数据库中读取图片数据。同时,还探讨了限制图片格式输入和统一图片大小的方法。最后,展示了ASP.NET下上传图片到数据库并读取的完整示例代码。
摘要由CSDN通过智能技术生成

 

5.3  图片数据处理技巧


本实例主要介绍如何将图片存入数据库。将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用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;

        }

 

本实例主要介绍如何只允许输入指定图片格式。用OpenFileDialog控件打开图片文件,只要将OpenFileDialog控件的Filter属性指定为特定的图片格式即可。例如,打开.bmp文件的图片,主要代码如下:

this.openFileDialog1.Filter = "bmp文件(*.bmp)|*.bmp";

 

在用pictureBox控件输入图片时,要想统一图片大小,只需把控件的SizeMode属性值设为StretchImage即可,StretchImage值表示图像的大小将调整为控件的大小。这样,图片的大小就统一了。

上一页   首页   下一页
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
ASP.NET下上传图片到数据库,并且读出图片


 

首先在SQL Server中建立一个图片存储的数库表,ImageData Column为图象二进制数据储存字段

,ImageContentType Column为图象文件类型记录字段,ImageDescription Column为储蓄图

象文件说明字段,ImageSize Column为储存图象文件长度字段,结构如下:
CREATE TABLE [dbo].[ImageStore] (
    [ImageID] [int] IDENTITY (1, 1) NOT NULL ,
    [ImageData] [image] NULL ,                            
    [ImageContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [ImageDescription] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    [ImageSize] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
*/

//UpLoadImage.aspx程序内容如下:
<%@ Page Inherits="UploadImage.UploadImage" SRC="UpLoadImage.cs"

Language="C#"%>
<HTML><title>上传图片</title>
<BODY bgcolor="#FFFFFF">
<FORM ENCTYPE="multipart/form-data" RUNAT="server" ID="Form1">
<TABLE RUNAT="server" WIDTH="700" ALIGN="left" ID="Table1" cellpadding="0"

cellspacing="0" border="0">
<TR>
     <TD>上传图片(选择你要上传的图片)</TD>
<TD>
<INPUT TYPE="file" ID="UP_FILE" RUNAT="server" STYLE="Width:320"

ACCEPT="text/*" NAME="UP_FILE">
</TD>
</TR>
<TR>
     <TD>
      文件说明(添加上传图片说明,如:作者、出处)
     </TD>
<TD>
<asp:TextBox RUNAT="server" WIDTH="239" ID="txtDescription"

MAINTAINSTATE="false" />
</TD>
</TR>
<TR>
<TD>
<asp:Label RUNAT="server" ID="txtMessage" FORECOLOR="red"

MAINTAINSTATE="false" />
</TD>
<TD>
<asp:Button RUNAT="server" WIDTH="239" onCLICK=&

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Python 的 pandas 库和 SQLAlchemy 库来将 DataFrame 存储到 SQL 数据库。下面是一些常见的步骤: 1. 首先,需要安装 pandas 和 SQLAlchemy 库。可以使用以下命令进行安装: ```python pip install pandas pip install sqlalchemy ``` 2. 然后,需要创建一个 SQLAlchemy 的 engine 对象,用于连接到目标数据库。可以使用以下代码创建 engine 对象: ```python from sqlalchemy import create_engine engine = create_engine('mysql+pymysql://username:password@host:port/database_name') ``` 其,username 和 password 是数据库的用户名和密码,host 和 port 是数据库的主机名和端口号,database_name 是要连接的数据库名。 3. 接着,将 DataFrame 存储到数据库。可以使用 pandas 的 to_sql() 方法将 DataFrame 存储到数据库。以下是一个示例代码: ```python import pandas as pd data = pd.read_csv('data.csv') data.to_sql('table_name', engine, if_exists='replace') ``` 其,data 是要存储到数据库的 DataFrame,table_name 是要存储到的表名,engine 是 SQLAlchemy 的 engine 对象,if_exists 参数可以是 'fail'、'replace' 或 'append',用于指定如果表已经存在时的处理方式。如果设为 'fail',则会抛出一个 ValueError 异常;如果设为 'replace',则会替换原有表;如果设为 'append',则会在原有表的基础上添加新的数据。 注意,如果 DataFrame 的列名与数据库的列名不一致,需要使用 columns 参数指定要存储的列。 以上就是利用 Python 将 DataFrame 存储到 SQL 数据库的常见步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值