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