无法在我的 Access 数据库中插入图像

Posted

技术标签:

【中文标题】无法在我的 Access 数据库中插入图像【英文标题】:Unable to insert image in my Access Database 【发布时间】:2012-02-19 10:14:08 【问题描述】:

嗯,我有一个简单的 MS Access 数据库,连接很好,但我一直收到错误

INSERT INTO 语句中的语法错误

private void btnSave_Click(object sender, EventArgs e)

   byte[] picbyte = System.IO.File.ReadAllBytes(imgFile);
   try
   
      conn = new OleDbConnection(connstring);
      conn.Open();
      sqlcom = new OleDbCommand("INSERT INTO Image (Img) values (@Img)", conn);
      sqlcom.Parameters.AddWithValue("@Img", picbyte);
      sqlcom.ExecuteNonQuery();
   
   catch (Exception ex)
   
      MessageBox.Show(ex.Message);
   
   finally
   
      conn.Close();
   

我的表名是Image,列是ImgId(自动编号)和Img(OLE 对象)

【问题讨论】:

你能发布你收到的完整错误吗? 【参考方案1】:

试试这个:

byte[] picbyte = System.IO.File.ReadAllBytes(imgFile);
using (var connection = new OleDbConnection(connstring))
using (var command = connection.CreateCommand())

    connection.Open();
    command.CommandText = "INSERT INTO [Image] (Img) VALUES (@Img)";
    command.Parameters.AddWithValue("@Img", picbyte);
    command.ExecuteNonQuery();

【讨论】:

【参考方案2】:

如果您的数据库表包含使用 Microsoft Jet 4.0 保留字的列名,可能会出现此问题,您可以尝试更改表名吗?

【讨论】:

【参考方案3】:

您的表名 (IMAGE) 是数据类型。为了避免这种情况,您必须使用括号[ ]

command.CommandText = "INSERT INTO [Image] (Img) VALUES (@Img)";

【讨论】:

以上是关于无法在我的 Access 数据库中插入图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Access 表中插入图像

如何在房间持久性库中插入图像?

无法在我的 android 应用程序中使用 XAMPP 服务器在我的数据库中插入值

MS access 数据库中的插入记录

如何使用从访问数据库中提取的图像名称在网页上插入图像?

从 Access 获取最后一个插入 ID