在ASP.NET中使用filestream读取图像文件并存储在Sql server数据库中

时间:2012-08-15 21:16:49

标签: asp.net sql sql-server-2008

我的数据库中有大约1k条记录,其中包含人口统计信息+图像列。所有图像当前都驻留在文件系统中,我被分配了拾取这些图像并将其存储在数据库中的任务。

我的目标是 1.使用ASP.NET,从文件系统中读取图像文件 2.将映像存储在SQL Server 2008数据库中

到目前为止,我已经看到这种情况只能使用FileUpload方法,这将非常繁琐。

任何帮助,非常感谢

谢谢, 尼尔

2 个答案:

答案 0 :(得分:0)

这是一个非常好的操作方法,它包含VB和C#代码:http://www.aspsnippets.com/Articles/Save-and-Retrieve-Files-from-SQL-Server-Database-using-ASP.Net.aspx

如果你需要进行批量加载,只需在代码周围抛出一个循环并将其提供给目录中的文件列表。

答案 1 :(得分:0)

Asp.net不适合批量加载任务。

由于文件已经在您的文件系统上,因此一个简单的控制台应用程序可以执行该任务。

  • 获取图片目录中的所有文件
  • 循环遍历它们以读取字节
  • 将数据插入数据库。

代码:

 var files = Directory.GetFiles(@"MY_PATH");
 foreach (var file in files)
 {
    var data = File.ReadAllBytes(file);
    var fileName = Path.GetFileName(file);
    string strQuery = "insert into imageData(Name, Data) values (@Name,@Data)";

    SqlCommand cmd = new SqlCommand(strQuery);

    cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename;
    cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = data;

    cmd.ExecuteNonQuery();
 }