错误仅更新字段类型附件MS Access C#WindowForm

本文关键字:MS Access C#WindowForm 类型 更新 字段 错误 | 更新日期: 2023-09-27 18:19:49

它可以更新字段类型Text。

string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:'test.accdb;";
        using (OleDbConnection MyConn = new OleDbConnection(ConnStr))
        {
            MyConn.Open();
            var StrCmd = "UPDATE Table1 SET Field1 = @p2 WHERE ID = @p1";
            OleDbCommand oldcommand = new OleDbCommand(StrCmd, MyConn);
            byte[] pic = File.ReadAllBytes(@"D:'test.png");
            oldcommand.CommandType = CommandType.Text;
            oldcommand.CommandText = StrCmd;
            oldcommand.Parameters.AddWithValue("@p2", "test");
            oldcommand.Parameters.AddWithValue("@p1", "1");
            try
            {
                oldcommand.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
            }

但是它不能更新字段类型Attachment。

错误没有为一个或多个必需的参数给定值。

string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:'test.accdb;";
        using (OleDbConnection MyConn = new OleDbConnection(ConnStr))
        {
            MyConn.Open();
            var StrCmd = "UPDATE Table1 SET Field2.Value = @p2 WHERE ID = @p1";
            OleDbCommand oldcommand = new OleDbCommand(StrCmd, MyConn);
            byte[] pic = File.ReadAllBytes(@"D:'test.png");
            oldcommand.CommandType = CommandType.Text;
            oldcommand.CommandText = StrCmd;
            oldcommand.Parameters.AddWithValue("@p2", pic);
            oldcommand.Parameters.AddWithValue("@p1", "1");
            try
            {
                oldcommand.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
            }

我的数据库MS访问错误图片

错误仅更新字段类型附件MS Access C#WindowForm

MS Access 2007 ACE引擎中引入的Attachment字段是一种复杂的数据类型,它实际上在每个记录中包含多个字段(隐藏在Access GUI中):

  1. 文件名
  2. 文件扩展名
  3. 文件的二进制内容

因此,您可能无法直接使用它运行任何查询(带联接的select、update或append)。事实上,您无法使用这样的字段类型运行DDL过程。您可能只能使用Access GUI来管理字段。

通常,一场关于SO的定期辩论涉及将媒体或其他二进制内容(文档、pdf等)存储在数据库或文件系统中。便携性是前者的巨大优势,性能是后者的巨大优势。由于ACE附件数据类型的限制,请考虑将数据库中的路径链接存储为引用外部存储文件的字符串。然后,您的应用程序可以运行所需的任何查询。