`
zu14
  • 浏览: 446428 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

VB.NET操作 SQL SERVER的 二进制数据

阅读更多

在VB时期, 向SQL SERVER 中插入二进制数据, 是通过 ADODB.STREAM 实现, 在.NET中, 对 “流”格式的操作更加强大而简单,本篇演示向SQL SERVER 中插入数据并读出的功能.






在窗体上添加一个 OPENFILEDIALOG 控件, 两个PICTUREBOX, 代码如下:
--------------------------------------------------------------------------------------------
    Imports System.IO
Public Class Form1
    Inherits System.Windows.Forms.Form

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.Dispose(True)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If ofdPic.ShowDialog = DialogResult.OK Then
            pbPreview.Image = Image.FromFile(ofdPic.FileName)
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If pbPreview.Image Is Nothing Then
            MsgBox("请先选择图片", MsgBoxStyle.Exclamation)
            Exit Sub
        End If
        Dim fs As FileStream = New FileStream(ofdPic.FileName, FileMode.Open, FileAccess.Read)
        Dim bt(fs.Length) As Byte
        fs.Read(bt, 0, fs.Length)
        fs.Close()
        fs = Nothing
        Dim sqlConn As SqlClient.SqlConnection = New SqlClient.SqlConnection("Server=(local);User Id=sa;Password=123;Database=pubs")
        sqlConn.Open()
        Dim sqlCmd As New SqlClient.SqlCommand("sp_InsertImage", sqlConn)
        sqlCmd.CommandType = CommandType.StoredProcedure
        sqlCmd.Parameters.Add("@img", SqlDbType.Image).Value = bt
        sqlCmd.ExecuteNonQuery()
        sqlCmd = Nothing
        sqlConn.Close()
        sqlConn = Nothing
        MsgBox("图片插入成功", MsgBoxStyle.Information)
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim sqlConn As SqlClient.SqlConnection = New SqlClient.SqlConnection("Server=(local);User Id=sa;Password=123;Database=pubs")
        sqlConn.Open()
        Dim sqlCmd As New SqlClient.SqlCommand("SELECT img FROM test WHERE t_ID=3", sqlConn)
        sqlCmd.CommandType = CommandType.Text

        Dim bt() As Byte = sqlCmd.ExecuteScalar()
        If Not bt Is Nothing Then
            If bt.Length > 0 Then
                Dim fs As MemoryStream = New MemoryStream(bt)
                pbReview.Image = Image.FromStream(fs)
                'fs.Close
                'fs = Nothing
                '可以自己试着将上面两句的注释去掉, 看有什么效果 ^_^
            Else
                MsgBox("无图片")
            End If
        Else
            MsgBox("无数据")
        End If

        sqlCmd = Nothing
        sqlConn.Close()
        sqlConn = Nothing
    End Sub
End Class
-----------------------------------------------------------------------------
数据库部分:
----------------
use pubs
go
Create Table test(t_ID int identity(1,1), img image)
go
Create Procedure sp_InsertImage
@img image
AS
Insert Into test (img) Values (@img)
go

分享到:
评论

相关推荐

    如何将图片转换成二进制存储

    存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[]. 1.参数是图片路径:返回Byte[]类型: public byte[] GetPictureData(string imagepath) { /**/////...

    asp.net知识库

    使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标...

    Visual SQLTools 2012 Pro – 高效率SQL开发工具

    Visual SQLTools 2012 Pro - 是一套专业的数据库及SQL开发工具,基于.NET Framework 和.NET Data Provider技术开发,历时十年精心打造而成,支持Oracle,SQLServer,MySQL,DB2,Sybase,PostgreSQL,Access 7种常用数据库...

    代码生成器(CodeBuilder) 2.5

    通过开发插件,你甚至可将其转换成 Word、PDF 等二进制文件。 CodeBuilder 基于插件式、开放式的思想,你通过实现其定义的接口,就可轻松地将你 所开发的插件集成到 CodeBuilder 中来。目前 CodeBuilder 提供了数据...

    制作第一个页面 欢迎您进入.Net启动运行

    与 二进制 √(vs2005097) 106. 多文件上传 √(vs2005098) <br/>创建可复用的代码 107. 创建可复用的代码 – 概述√(vs2005099) 108. 深入继承 – 抽象类和接口 一 √(vs2005100) 109. 深入继承...

    net学习笔记及其他代码应用

    而Remoting可以利用TCP/IP,二进制传送提高效率。 31.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行...

    GridView使用技巧二

    与 二进制 √(vs2005097) 106. 多文件上传 √(vs2005098) <br/>创建可复用的代码 107. 创建可复用的代码 – 概述√(vs2005099) 108. 深入继承 – 抽象类和接口 一 √(vs2005100) 109. 深入继承...

    GridView使用技巧一

    与 二进制 √(vs2005097) 106. 多文件上传 √(vs2005098) <br/>创建可复用的代码 107. 创建可复用的代码 – 概述√(vs2005099) 108. 深入继承 – 抽象类和接口 一 √(vs2005100) 109. 深入继承...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    MySQL5.1参考手册官方简体中文版

    8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysqlcheck:表维护和维修程序 8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-...

    MySQL 5.1中文手冊

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装...

    mysql官方中文参考手册

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装...

    MYSQL中文手册

    8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysqlcheck:表维护和维修程序 8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. ...

    MySQL 5.1参考手册中文版

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过...

    MySQL 5.1参考手册

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装...

    MySQL 5.1官方简体中文参考手册

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装...

    MySQL 5.1参考手册 (中文版)

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装...

    java源码包---java 源码 大量 实例

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

Global site tag (gtag.js) - Google Analytics