-1

我想通过提供来自系统的图像路径将任何图像文件从我的系统转换为二进制格式。转换后,我想将转换后的二进制格式存储在一个文件夹中。我该怎么做?它应该是一个 Windows 窗体应用程序。

4

1 回答 1

1

如果您真的只是想将文件存储在数据库中,则根本不必担心它是图像。图像文件已经是“二进制格式”——您只需要存储文件数据。可能有很多方法可以以流的方式执行此操作,但除非文件很大,否则将它们加载到字节数组中可能更简单:

byte[] image = File.ReadAllBytes(imagePath);

然后image用作参数化 SQL 语句中的参数值,例如

string sql = "INSERT INTO Foo (Path, ImageData) VALUES (@Path, @ImageData");
using (var connection = new SqlConnection(...))
{
    connection.Open();
    using (var command = new SqlCommand(sql, connection))
    {
        command.Parameters.Add("@Path", SqlDbType.NVarChar).Value = imagePath;
        command.Parameters.Add("@ImageData", SqlDbType.Image).Value = imageData;
        command.ExecuteNonQuery();
    }
}
于 2013-10-15T06:11:22.407 回答