1. 可能存储任意格式的文件 *.xls,*.doc,*.pdf,图片等
2. 字段需要定义成: Image类型。需要另外一个字段保存扩展名,以变还原。
3.DB模型为:
Private arr印影画像() As Byte '印影画像
Public Property b印影画像() As Byte()
Get
Return arr印影画像
End Get
Set(ByVal Value As Byte())
arr印影画像 = Value
End Set
End Property
Public Property 印影画像更新() As Boolean
Get
Return bln印影画像更新
End Get
Set(ByVal value As Boolean)
bln印影画像更新 = value
End Set
End Property
新规sql:
If objmコントロールT.印影画像更新 = False Then '印影画像
strsql.Append(",印影画像" & vbCrLf)
End If
'新規を実行する
If objmコントロールT.印影画像更新 = False Then
Dim prm4 As New sqlParameter("@Picture",sqlDbType.VarBinary,Int(objmコントロールT.b印影画像.Length),ParameterDirection.Input,False,"", DaTarowVersion.Current,objmコントロールT.b印影画像)
objDbHelper.ExcuteNonQuery(strRtnsql.ToString,prm4)
Else
objDbHelper.ExcuteNonQuery(strRtnsql.ToString)
End If
数据库对象类用代参数的方法: Me.PrepareCommand(strCommandText,parm)
更新sql
'印影画像
If objmコントロールT.印影画像更新 = False Then
strsql.Append(",印影画像 = @Picture " & vbCrLf)
End If
'更新を実行する
If objmコントロールT.印影画像更新 = False Then
Dim prm4 As New sqlParameter("@Picture",DaTarowVersion.Current,prm4)
Else
objDbHelper.ExcuteNonQuery(strRtnsql.ToString)
End If
从画面或文件将对象存入DB模型
Dim fs As FileStream
fs = New FileStream("E:\duplo\3.xls",FileMode.Open,FileAccess.Read)
Dim Data(fs.Length) As Byte
fs.Read(Data,Int(fs.Length))
objmコントロールT.b印影画像 = Data
从数据库取得后转为byte()
If PFn_NullToString(dtRtnSearch.Rows(0).Item("印影画像")) <> "" Then
objmコントロールT.b印影画像 = CType(dtRtnSearch.Rows(0).Item("印影画像"),Byte())
End If
'Pic印影画像 画面显示
If Not mObjMコントロールT.b印影画像 Is nothing Then
ms = New MemoryStream(mObjMコントロールT.b印影画像)
me.pic印影画像.Image = Image.FromStream(ms)
End If
或保存为文件
方案1:FileStream处理
Dim Fs As FileStream = New FileStream("e:\bbb.xls",_
FileMode.OpenorCreate,FileAccess.Write,FileShare.None)
'Fs.Write(mObjMコントロールT.b印影画像)
For i As Integer = 0 To mObjMコントロールT.b印影画像.Count - 1
Fs.WriteByte(mObjMコントロールT.b印影画像(i))
Next
Fs.Flush()
Fs.Close()
'CreateTextFile("E:\aaa.xls")
方案2:MemoryStream+FileStream处理
ms = New MemoryStream(mObjMコントロールT.b印影画像)
Dim Fs As FileStream = New FileStream("e:\bbb.xls",_
FileMode.OpenorCreate,FileShare.None)
ms.Writeto(Fs)
ms.Close()
Fs.Close()
4. 结论存什么文件都可以,连excel的格式都没有问题。存入各取出都是byte的形式。
效率应该会稍低。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。