如何在C#中从MemoryStream打开文件?

时间:2014-10-11 08:25:59

标签: file c#-4.0 memorystream

我已将文件保存到数据库。这些文件可以是Doc,PDF或Image类型。现在,我尝试使用此代码从DataGridView Cell_Click事件中打开这些文件。

    private void dgvDocuments_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == dgvDocuments.Columns[0].Index)
        {
            int id =Convert.ToInt32(dgvDocuments.Rows[e.RowIndex].Cells[1].Value);
            string query = "SELECT Photo FROM [dbo].[tblHR_Emloyee_Documents] WHERE ID = " + id;
            Utility.Generate_Window_Control.databaseFileRead(query);
        }
    }

    public static MemoryStream databaseFileRead(string query)
   {
       MemoryStream memoryStream = new MemoryStream();
       using (var varConnection = new SqlConnection(Utility.Global_Connection.conn))
       using (var sqlQuery = new SqlCommand(query, varConnection))
       {
           varConnection.Open();
           using (var sqlQueryResult = sqlQuery.ExecuteReader())
               if (sqlQueryResult != null)
               {
                   sqlQueryResult.Read();
                   var blob = new Byte[(sqlQueryResult.GetBytes(0, 0, null, 0, int.MaxValue))];
                   sqlQueryResult.GetBytes(0, 0, blob, 0, blob.Length);
                   //using (var fs = new MemoryStream(memoryStream, FileMode.Create, FileAccess.Write)) {
                   memoryStream.Write(blob, 0, blob.Length);
                   //}
               }
       }
       return memoryStream;
   }

在调试期间,它显示没有错误。值是正确的。但它没有打开文件。请指导我如何做到这一点?

0 个答案:

没有答案