zoukankan      html  css  js  c++  java
  • C# 二进制存储图片到mssql(一)

    今天刚学如何在mssql数据库中存储图片,决定留下笔记,以免后忘。

    SQL Server的联机丛书提供三种二进制数据类型的使用条件说明:

    1.当表列的所有输入数据大小为固定值(且长度小于8000字节)时,使用标准二进制Binary数据类型;

    2.当表列的输入数据长度有很大差别(且长度均小于8000字节)时,使用varBinary数据类型;

    3.当表列输入数据长度超过8000字节时,使用varBinary(max) 数据类型。

    这次利用varBinary(MAX)数据类型存储图片:

      我先在mssql数据库直接测试如下:

         INSERT INTO [blog].[dbo].[img](data)

         SELECT BulkColumn

         FROM OPENROWSET(Bulk 'G:\VS test\WebSites\mail\images\1.gif', SINGLE_BLOB) AS BLOB

         //  结果显示成功

     OPENROWSET语句允许SQL从外部数据源提供程序来存取数据。Bulk是特别为OPENROWSET插入文件和图像而设计的数据源提供程序.

    接着是在aspx页面中显示图片:

    前台页面: 

        <form id="form1" runat="server">
        <div>
            <asp:Image ID="Image1" runat="server" ImageUrl="~/images/12.gif" />
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
           
        </div>
        </form>

     aspx.cs代码如下:

        protected void Button1_Click(object sender, EventArgs e)
        {
            string Str = "server=(local); user=grid; database=blog; password=grid";
            SqlConnection conn = new SqlConnection(Str);
            //string cmd = "insert into img(img) values ()";
            conn.Open();
            string cmd = "select data from img";
            SqlCommand com = new SqlCommand(cmd,conn );
            com.CommandType = CommandType.Text;
            SqlDataReader dr = com.ExecuteReader();
            dr.Read();
            Response.BinaryWrite((byte[])dr["data"]);
            conn.Close();
        }

     结果 点击button显示存储的图片成功。

  • 相关阅读:
    微信公众平台消息接口开发(32)空气质量指数查询
    微信公众平台消息接口开发(33)智能快递查询
    微信公众平台消息接口开发(34)桃花运测试
    微信5.0体验贴:即将横“扫”一切
    微信官方首次表态:微信公众平台不是营销工具
    微信公众平台消息接口开发(34)微信墙
    微信 5.0 内部测试版下载地址
    PHP和MySQL Web开发 经典书籍
    字符数组在C++、C#等语言中的操作
    CF555B 贪心
  • 原文地址:https://www.cnblogs.com/vvwang/p/3114016.html
Copyright © 2011-2022 走看看