vb 如何在现有byte数组前端添加数据(数组里有数据),不想逐一读取,太影响速度

vb 如何在现有byte数组前端添加数据(数组里有数据),不想逐一读取,太影响速度,第1张

如果我告诉你,字节数组可以像字符串一样进行拼接,而且可以把字符串直接赋值给字节数组,你会不会觉得很神奇或者不可思议?当然,由于VB的字符串使用Unicode编码,而字节数组要求ANSI编码,所以要把编码转换一下才行。下面就是个把两个字节数组合为一个的例子:

Private Sub Command1_Click()

Dim b1() As Byte, b2() As Byte, b3() As Byte, i As Integer

ReDim b1(4)

Print "第1个字节数组:"

For i = 0 To 4

    b1(i) = 16 + i

    Print Hex(b1(i)) " "

Next

Print

ReDim b2(7)

Print "第2个字节数组:"

For i = 0 To 7

    b2(i) = 160 + i

    Print Hex(b2(i)) " "

Next

Print

b3 = StrConv(StrConv(b1, vbUnicode) & StrConv(b2, vbUnicode), vbFromUnicode)

Print "合并后的字节数组:"

For i = 0 To UBound(b3)

    Print Hex(b3(i)) " "

Next

End Sub

b3 = StrConv(StrConv(b1, vbUnicode) &StrConv(b2, vbUnicode), vbFromUnicode)

这句我单独解释一下:这是先把两个字节数组b1和b2分别转为Unicode编码,它们就变成了VB的字符串(真的哦!),然后把两个字符串拼接成一个字符串,再转为ANSI编码,最后赋值给一个动态字节数组b3,OK搞定!

初始化一个byte数组,长度为2:

byte[] b = new byte[2]

然后添加数据:

b[0] = 12

b[1] = 23

//保存文件到SQL Server数据库中

FileInfo fi=new FileInfo(fileName)

FileStream fs=fi.OpenRead()

byte[] bytes=new byte[fs.Length]

fs.Read(bytes,0,Convert.ToInt32(fs.Length))

SqlCommand cm=new SqlCommand()

cm.Connection=cn

cm.CommandType=CommandType.Text

if(cn.State==0) cn.Open()

cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)"

SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image)

spFile.Value=bytes

cm.Parameters.Add(spFile)

cm.ExecuteNonQuery()

//保存文件到Access数据库中

FileInfo fi=new FileInfo(fileName)

FileStream fs=fi.OpenRead()

byte[] bytes=new byte[fs.Length]

fs.Read(bytes,0,Convert.ToInt32(fs.Length))

OleDbCommand cm=new OleDbCommand()

cm.Connection=cn

cm.CommandType=CommandType.Text

if(cn.State==0) cn.Open()

cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)"

OleDbParameter spFile=new OleDbParameter("@file",OleDbType.Binary)

spFile.Value=bytes

cm.Parameters.Add(spFile)

cm.ExecuteNonQuery()

代码中的fileName是文件的完整名称,tableName是要 *** 作的表名称,fieldName是要保存文件的字段名称


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11739742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存