如何在 C# 上将 *.dat(或 *.txt)文件插入 MS Access 数据库

How to insert *.dat (or *.txt) file into MS Access DB on C#

我有一些任务。我必须实现一个文本编辑器,它能够将文件保存到/从 MS Access 数据库下载文件,但我不知道该怎么做。 这是我的尝试(它不起作用。只保存文件)。我知道,这很愚蠢,但是..

    OleDbCommand cmd = new OleDbCommand();

    OleDbConnection cn = new OleDbConnection(
            @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\..\Database1.accdb;Persist Security Info=True");

    private void Button_Click_2(object sender, RoutedEventArgs e)
    {
            if(textBox1.Text != null)
            {
                FileInfo file = new FileInfo(textBox1.Text.ToString() + ".dat");
                using (BinaryWriter bw = new BinaryWriter(file.OpenWrite()))
                {
                    string text = textBox2.Text.ToString();
                    bw.Write(text);

                    try
                    {
                        cn.Open();
                        cmd.CommandText = "INSERT INTO info ( files.FileData ) values (@file)";
                        cmd.Parameters.Add("@file", file);
                        cmd.ExecuteNonQuery();
                        cn.Close();
                    }
                    catch (Exception ex)
                    {
                        cn.Close();
                        MessageBox.Show(ex.Message.ToString());
                    }

                    textBox1.Text = null;
                    textBox2.Text = null;
                }

            }
    }  

有没有办法直接上传文件到数据库?

如果按照您对问题的评论中的建议,您希望将文件存储在 Access 数据库的 Attachment 字段中,那么在此处的另一个问题中有用于此的 C# 代码:

Storing an image into an Attachment field in an Access database

备注:

  1. 无法使用 SQL 将文件附加到数据库记录。您需要使用 ACE DAO(如上面引用的文章中所示)。

  2. 某些文件类型在附件字段中被阻止。 Microsoft 支持文章 here.

  3. 中列出了这些文件类型