C# 如何将文件插入access数据库

C# 如何将文件插入access数据库,c#,ms-access,C#,Ms Access,我搜索了整个网站和文章,但找不到。如何将文件插入access数据库(在桌面应用程序中)。请有人帮帮我。简短的回答:你不能。详细回答:您可以读取它们,将它们转换为blob,并将它们存储为二进制字段,以及文件名和其他内容,模拟文件系统。但这并不是解决你问题的最好办法。想详细说明您的问题吗?在表中创建一个LONGBINARY类型的列,并将文件存储在该列中 这篇文章解释了如何实现它这篇文章告诉您如何使用Access 2007。这就是你想要的吗?我真的不建议这样做。如果只存储文件的路径并在需要的地方引用它

我搜索了整个网站和文章,但找不到。如何将文件插入access数据库(在桌面应用程序中)。请有人帮帮我。

简短的回答:你不能。详细回答:您可以读取它们,将它们转换为blob,并将它们存储为二进制字段,以及文件名和其他内容,模拟文件系统。但这并不是解决你问题的最好办法。想详细说明您的问题吗?

在表中创建一个
LONGBINARY
类型的列,并将文件存储在该列中


这篇文章解释了如何实现它

这篇文章告诉您如何使用Access 2007。这就是你想要的吗?

我真的不建议这样做。如果只存储文件的路径并在需要的地方引用它,效率会更高。如果必须的话,这里是读取文件的C代码

以下是读取文件的函数:

public static byte[] ReadFile(string filePath)
{
  byte[] buffer;
  FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
  try
  {
    int length = (int)fileStream.Length;  // get file length
    buffer = new byte[length];            // create buffer
    int count;                            // actual number of bytes read
    int sum = 0;                          // total number of bytes read

    // read until Read method returns 0 (end of the stream has been reached)
    while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
      sum += count;  // sum is a buffer offset for next reading
  }
  finally
  {
    fileStream.Close();
  }
  return buffer;
}

然后,您可能希望在数据库中使用OLE对象字段来存储文件。

在access的“设计”视图中,将列的类型设置为“文件”甚至“字节”,并给出一些更大的值。 然后使用Stream类读取文件,并将从中读取的所有内容转换为字节并存储在数据库中