Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C上的MS Access数据库中插入*.dat(或*.txt)文件_C#_Database_Ms Access_Stream - Fatal编程技术网

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

C# 如何在C上的MS Access数据库中插入*.dat(或*.txt)文件,c#,database,ms-access,stream,C#,Database,Ms Access,Stream,我有一些任务。我必须实现一个文本编辑器,能够在ms access数据库中保存/下载文件,但我不知道该怎么做。 这是我的尝试,它不起作用。只保存文件。我知道,这很愚蠢,但是 OleDbCommand cmd = new OleDbCommand(); OleDbConnection cn = new OleDbConnection( @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\..\Database

我有一些任务。我必须实现一个文本编辑器,能够在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数据库的“at Attachment”字段中,则在另一个问题中有C代码:

注:

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

某些文件类型在附件字段中被阻止。Microsoft支持文章中有这些文件类型的列表


你们能不能更清楚地说明出了什么问题,你们的问题是什么?我不能将文件插入数据库。我的代码错了。我认为这一行是错误的cmd.Parameters。Add@file文件那么你想在数据库中输入什么呢?所有的文字?二进制的你不能只是把一个文件放进数据库,我试着把一些信息文本放进数据库。无论在哪种情况下。为什么不呢?Access有一个附件类型的字段。在MS Office工作时,我可以将文件下载到计算单元中,为什么程序不能做到这一点?因为文件只是一个抽象。它实际上是硬盘上的一个位置,硬盘上有另一块空间,称为指向它的文件描述符。你不能把它储存起来。现在,您可以存储文件的路径或文件中的所有文本,甚至文件的二进制表示形式。但是,您不能存储文件描述符本身,因为该数据仅在文件系统上。不知道这些办公室在做什么。