Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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#SQL Server CE二进制数据恢复_C#_Pdf_Sql Server Ce_Filestream_Binaryreader - Fatal编程技术网

C#SQL Server CE二进制数据恢复

C#SQL Server CE二进制数据恢复,c#,pdf,sql-server-ce,filestream,binaryreader,C#,Pdf,Sql Server Ce,Filestream,Binaryreader,我正在尝试在SQLServerCE本地数据库中保存和读回pdf文件。我能够将它们保存为图像列中的二进制数据,但我不知道如何读回并打开pdf文件(原始格式) 以下是我存储PDF文件的方式: try { SqlCeConnection con = new SqlCeConnection(@"Data Source = D:\C# Projects\StoreFileSqlCe\StoreFileSqlCe\Test_File_Stotage.sdf"); con.Open();

我正在尝试在SQLServerCE本地数据库中保存和读回pdf文件。我能够将它们保存为
图像
列中的二进制数据,但我不知道如何读回并打开pdf文件(原始格式)

以下是我存储PDF文件的方式:

try
{
    SqlCeConnection con = new SqlCeConnection(@"Data Source = D:\C# Projects\StoreFileSqlCe\StoreFileSqlCe\Test_File_Stotage.sdf");
    con.Open();

    string filePath = textBox1.Text.ToString();
    string filename = Path.GetFileName(filePath);

    FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);

    BinaryReader br = new BinaryReader(fs);
    Byte[] bytes = br.ReadBytes((Int32)fs.Length);
    br.Close();

    fs.Close();

    string strQuery = "insert into tblFiles(Name, ContentType, Data) values (@Name, @ContentType, @Data)";

    SqlCeCommand cmd = new SqlCeCommand(strQuery, con);
    cmd.Parameters.AddWithValue("@Name", filename);
    cmd.Parameters.AddWithValue("@ContentType", "application/vnd.ms-word");
    cmd.Parameters.AddWithValue("@Data",bytes);

    cmd.ExecuteNonQuery();
}            }
catch (Exception ex)
{
    MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
    con.Close();
    con.Dispose();
}
试试这个

            try
            {

                SqlCeConnection con = new SqlCeConnection(@"Data Source = D:\C# Projects\StoreFileSqlCe\StoreFileSqlCe\Test_File_Stotage.sdf");
                con.Open();

                string strQuery = "select Data where Name = @Name and ContentType = @ContentType";
                SqlCeCommand cmd = new SqlCeCommand(strQuery, con);

                cmd.Parameters.AddWithValue("@Name", filename);

                cmd.Parameters.AddWithValue("@ContentType", "application/vnd.ms-word");


                SqlCeDataReader reader = cmd.ExecuteReader();
                if (reader != null)
                {
                    if (reader.Read())
                    {

                        byte[] pdf = (byte[])reader["Data"];
                        File.WriteAllBytes(filename, pdf);

                    }
                }
            }

​