2012-08-15 40 views
0

我的數據庫中有大約1k條記錄,它們具有人口統計信息+圖像列。所有的圖像目前都駐留在一個文件系統中,並且我已經分配了完成這些圖像並將其存儲在數據庫中的任務。使用ASP.NET中的filestream讀取圖像文件並存儲在Sql server數據庫中

我的目標是
1.使用ASP.NET,從文件系統
2.存儲在SQL Server 2008數據庫中的圖像讀取的圖像文件

到目前爲止,我已經看到了這可能僅使用文件上傳方法這將是非常乏味的。

任何幫助,不勝感激

感謝, 尼爾

+0

Microsoft不提供用於創建流SQL的ADO兼容的機制? (例如用於讀/寫TEXT或BLOB列)。 – 2012-08-15 21:19:57

+0

例如請參見[SqlFileStream](http://msdn.microsoft.com/zh-cn/library/system.data.sqltypes.sqlfilestream.aspx)。我相信它需要2008年。不知道它是否需要R2。 – 2012-08-15 21:21:31

+0

可能相關:http://www.aghausman.net/dotnet/saving-and-retrieving-file-using-filestream-sql-server-2008.html,http://stackoverflow.com/questions/7973829/sql -server-filestream-how-to-populate-the-filestream-column – 2012-08-15 21:22:44

回答

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

謝謝nunespascal ... :) – neil 2012-08-16 14:42:38

相關問題