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

如何在C#中保存从数据库访问的二进制文件?,c#,binaryfiles,C#,Binaryfiles,我通过c#查询访问了一个存储员工照片的数据库。我的问题是:如何通过c#程序将照片保存到硬盘上的常规文件中?要创建文件,我知道我将使用FileMode.create和SaveFileDialog类 这是我在文件中读取的方式: using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(queryString, connection);

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

这是我在文件中读取的方式:

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();
    }
}

我已经从中提取了必要的信息,但这对保存文件没有帮助。因此,我想寻求一些帮助,了解如何保存一个二进制文件,这是一张图片,我想保存在我的计算机上

文件。writealBytes
将向给定名称的文件写入字节

全部,大概是

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

您可以使用“保存文件”对话框保存文件,是的。但这实际上更多的是你的用户体验设计(和应用程序设计)的问题。一般来说,循环和对话框的效果不太好-如果你让我选择10个不同的文件名来保存照片,你可以自己选择名称,我会对你生气的:P

文件。writealBytes
会将字节写入给定名称的文件

全部,大概是

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

您可以使用“保存文件”对话框保存文件,是的。但这实际上更多的是你的用户体验设计(和应用程序设计)的问题。一般来说,循环和对话框的效果不太好-如果你让我选择10个不同的文件名来保存照片,你可以自己选择名称,我会对你生气的:P

什么数据库?包含图像数据的列的数据类型是什么?@alex它是Microsoft数据库。列是一个二进制字符串。哪个数据库?包含图像数据的列的数据类型是什么?@alex它是Microsoft数据库。这个列是一个二进制字符串。哈哈,谢谢你的回复!我想我会为文件名变量连接一些字符串。哈哈,谢谢你的回复!我想我将为file name变量连接一些字符串。