把文件存入数据库

参考:
用image类型

方法:
1、建立过程
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str

2、建表和初始化数据
create table 表名 (编号 int,image列名 image)
go
insert 表名 values(1,0x) -- 必须的,且不是null
insert 表名 values(2,0x) -- 必须的,且不是null
go

3、读入
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:/图片.bmp','where 编号=1','I' --注意条件是 编号=1

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:/bb.doc','where 编号=2','I' --注意条件是 编号=2

go

4、读出成文件
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:/图片.bmp','where 编号=1','O' --注意条件是 编号=1

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:/bb.doc','where 编号=2','O' --注意条件是 编号=2
go

如果报textcopy不是可执行文件的话,你就到
C:/Program Files/Microsoft SQL Server/MSSQL/Binn
目录下拷备 textcopy.exe到:
C:/Program Files/Microsoft SQL Server/80/Tools/Binn

### 使用 VB 将文件存储到数据库中的方法 为了实现将文件保存至数据库的功能,在 Visual Basic (VB) 中通常会采用二进制大对象(BLOB, Binary Large Object)的方式处理。这意味着文件会被读取成字节数组并存入支持 BLOB 数据类型的字段内,比如 SQL Server 的 `VARBINARY(MAX)` 或者 MySQL 的 `LONGBLOB` 类型[^1]。 下面是一个简单的例子来展示如何利用 ADO.NET 技术通过 VB 实现这一过程: #### 准备工作 确保已创建好具有适当数据表结构的数据库,并且该表格含有用于容纳文件内容的数据列。假设这里有一个名为 Files 表,其中包含 Id 和 FileData 两个字段,后者定义为 VARBINARY(MAX)[^2]。 ```vb Imports System.Data.SqlClient ' 导入库以便连接SQL Server Module Module1 Sub Main() Dim filePath As String = "C:\example.txt" Using connection As New SqlConnection("YourConnectionStringHere") connection.Open() InsertFileIntoDatabase(connection, filePath) Console.WriteLine("完成!") Console.ReadLine() End Using End Sub Private Sub InsertFileIntoDatabase(ByVal conn As SqlConnection, ByVal fileName As String) Try Dim fs As FileStream = New FileStream(fileName, FileMode.Open, FileAccess.Read) Dim br As BinaryReader = New BinaryReader(fs) Dim fileBytes() As Byte = br.ReadBytes(CInt(br.BaseStream.Length)) br.Close() fs.Close() Dim cmdText As String = _ "INSERT INTO Files (Id, FileData)" & _ "VALUES (@idValue, @fileData)" Using command As SqlCommand = New SqlCommand(cmdText, conn) With command.Parameters .AddWithValue("@idValue", Guid.NewGuid()) .AddWithValue("@fileData", fileBytes) End With command.ExecuteNonQuery() End Using Catch ex As Exception Throw ex End Try End Sub End Module ``` 这段代码展示了怎样打开指定路径下的文件,将其转换成字节流形式,再经由参数化查询语句提交给数据库服务器执行插入操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值