C#学习教程:在Access 2010中存储字节分享


在Access 2010中存储字节

这么简单的任务: 如何在Access 2010中存储Byte []? (整天都在网上搜索这个。)

我必须在访问2010中使用“附件字段”,因为据我所知,没有其他可能的(varBinary,Image,..)字段可用。

我试过:(ConvertImageToByte返回一个Byte [])

Cmd.CommandText = "UPDATE Clubs SET Field1 = @File WHERE Name = @Name"; OleDbParameter para = new OleDbParameter("@File", OleDbType.VarBinary); para.Value = ConvertImageToByte(Logo); Cmd.ExecuteNonQuery(); 

例外:“UPDATE或DELETE查询不能包含多值字段。”

我试过了:

  DBEngine dbe = new DBEngine(); Database db = dbe.OpenDatabase("database.accdb", false, false, ""); String Command = "SELECT * FROM Clubs"; Recordset rs = db.OpenRecordset(Command, RecordsetTypeEnum.dbOpenDynaset, 0, LockTypeEnum.dbOptimistic); rs.MoveFirst(); rs.Edit(); Recordset2 rs2 = (Recordset2)rs.Fields["Field1"].Value; rs2.AddNew(); Field2 f2 = (Field2)rs2.Fields["FileData"]; f2.LoadFromFile("file.png"); rs2._30_Update(); rs2.Close(); rs._30_Update(); rs.Close(); 

这是有效的,但文件始终位于表格的第一行,我无法弄清楚如何获得正确的行。 如果我尝试在SELECT语句中添加一个WHERE子句,则会得到“参数太少。预期2.” 例外。

如果有人知道我的Byte [](或图像)进入数据库的方法,请再次获取它请告诉我!

请不要给我链接:

http://office.microsoft.com/en-us/access-help/using-multivalued-fields-in-queries-HA010149297.aspx#BM4.6

http://www.mikesdotnetting.com/Article/123/Storing-Files-and-Images-in-Access-with-ASP.NET

http://www.sitepoint.com/forums/showthread.php?t=666928

http://www.eggheadcafe.com/software/aspnet/35103540/multivalued-fields-in-access-2007-with-c-ado.aspx

使用.NET以编程方式管理Microsoft Access Attachment类型字段

谢谢你的帮助。

您可以使用OLE对象字段,它是varbinary(max)匹配的最佳选择。

一些说明:

 ''Reference: Microsoft ActiveX Data Object xx Library Dim strSQL As String Dim strCN As String Dim rs As dao.Recordset Dim mstream As ADODB.Stream strSQL = "SELECT Pix FROM Table1" Set rs = CurrentDb.OpenRecordset(strSQL) Set mstream = New ADODB.Stream mstream.Type = adTypeBinary mstream.Open mstream.LoadFromFile "c:docsproject.jpg" ''FileName & FullPath rs.AddNew rs.Fields("Pix").Value = mstream.Read rs.Update rs.Close 

编辑

要复制回磁盘,您可以再次使用Stream:

上述就是C#学习教程:在Access 2010中存储字节分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

 Dim strSQL As String Dim cn As New ADODB.Connection Dim mstream As New ADODB.Stream strSQL = "SELECT Pix FROM Table1" Set rs = CurrentDb.OpenRecordset(strSQL) mstream.Type = adTypeBinary mstream.Open mstream.Write rs!Pix mstream.SaveToFile "c:docspixout.jpg", adSaveCreateOverWrite 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/960073.html

发表评论

邮箱地址不会被公开。 必填项已用*标注