如何在C#中保存从数据库访问的二进制文件?

时间:2016-06-16 16:15:43

标签: c# binaryfiles

我访问了一个通过c#查询存储员工照片的数据库。我的问题是:如何通过c#程序将照片保存到硬盘上的常规文件中?要创建文件,我了解到我将使用FileMode.CreateSaveFileDialog类?

这是我在文件中读到的内容:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(queryString, connection);
    connection.Open();
    SqlDataReader reader = command.ExecuteReader();
    try
    {
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}, {2}, {3}", reader["emp_id"], reader["first_name"], reader["last_name"], reader["photo"]));
            FileStream fs = new FileStream(SaveFileDialog.FileName, FileMode.Open); //something of this nature?
        }
    }
    finally
    {
        reader.Close();
    }
}

我从this SO question中提取了必要的信息,但它对保存文件并没有帮助。所以,我要求一些帮助,如何保存一个二进制文件,这是一张图片,我想保存在我的电脑上。

1 个答案:

答案 0 :(得分:3)

File.WriteAllBytes会将字节写入给定名称的文件。

完整的,像

File.WriteAllBytes(fileName, (byte[])reader["photo"]);

您可以使用保存文件对话框保存文件,是的。但这确实是你的用户体验设计(和应用程序设计)的问题。一般来说,循环和对话框不能很好地发挥作用 - 如果你让我选择10个不同的文件名来保存你自己可以选择的名字的照片,我会对你生气:P