Microsoft Word文档到OLE字段

时间:2014-04-28 11:50:23

标签: c# ms-access ole

我正在尝试将docx文档上传到Access数据库。

            OleDbConnection conn = null;
            OleDbDataReader reader = null;

            try
            {
                conn = new OleDbConnection(
                    "Provider=Microsoft.ACE.OLEDB.12.0; " +
                    "Data Source=" + @"C:\AudSystem\Auditoru_sertifikacija2007.accdb");
                conn.Open();


                OleDbCommand cmd = new OleDbCommand();

                cmd.CommandText = "insert into questions (Category, Question, Answers, CorrectAnswers, Comment, Reference, QuestionNumber, Changed, IsNew) values (@p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10)";

                byte[] file = File.ReadAllBytes(@"C:\AudSystem\rez.docx");

                cmd.Parameters.AddWithValue("@p2", 2);
                cmd.Parameters.AddWithValue("@p3", file);
                cmd.Parameters.AddWithValue("@p4", file);
                cmd.Parameters.AddWithValue("@p5", "asd");
                cmd.Parameters.AddWithValue("@p6", "fgh");
                cmd.Parameters.AddWithValue("@p7", "zxc");
                cmd.Parameters.AddWithValue("@p8", 1);
                cmd.Parameters.AddWithValue("@p9", true);
                cmd.Parameters.AddWithValue("@p10", true);

                cmd.Connection = conn;
                cmd.ExecuteNonQuery();


            }
            finally
            {
                if (reader != null) reader.Close();
                if (conn != null) conn.Close();

            }

一切都很好,但是当我在设计视图中打开数据库表时,我看到在行中存储了“长二进制数据”,而不是“Microsoft word文档”。如果我通过Access表单将文件保存到数据库,文件将存储为“Microsoft Word文档”,我可以使用访问表单进行编辑。那么,如何将程序化的docx文件存储为“Microsoft Word文档”来访问OLE字段?

在图片中,我通过Access Form在“Question”字段中保存了相同的文件,但在C#代码的“Answers”字段中保存了相同的文件。

enter image description here

感谢。

0 个答案:

没有答案