我的數據庫中有大約1k條記錄,它們具有人口統計信息+圖像列。所有的圖像目前都駐留在一個文件系統中,並且我已經分配了完成這些圖像並將其存儲在數據庫中的任務。使用ASP.NET中的filestream讀取圖像文件並存儲在Sql server數據庫中
我的目標是
1.使用ASP.NET,從文件系統
2.存儲在SQL Server 2008數據庫中的圖像讀取的圖像文件
到目前爲止,我已經看到了這可能僅使用文件上傳方法這將是非常乏味的。
任何幫助,不勝感激
感謝, 尼爾
我的數據庫中有大約1k條記錄,它們具有人口統計信息+圖像列。所有的圖像目前都駐留在一個文件系統中,並且我已經分配了完成這些圖像並將其存儲在數據庫中的任務。使用ASP.NET中的filestream讀取圖像文件並存儲在Sql server數據庫中
我的目標是
1.使用ASP.NET,從文件系統
2.存儲在SQL Server 2008數據庫中的圖像讀取的圖像文件
到目前爲止,我已經看到了這可能僅使用文件上傳方法這將是非常乏味的。
任何幫助,不勝感激
感謝, 尼爾
這是一個相當不錯的操作方法,它包括VB和C#代碼:http://www.aspsnippets.com/Articles/Save-and-Retrieve-Files-from-SQL-Server-Database-using-ASP.Net.aspx
如果你需要做的散裝,只需在代碼中循環一次,然後將它提供給目錄中的文件列表即可。
Thanks Jim .. that works :) – neil 2012-08-16 14:43:00
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();
}
謝謝nunespascal ... :) – neil 2012-08-16 14:42:38
Microsoft不提供用於創建流SQL的ADO兼容的機制? (例如用於讀/寫TEXT或BLOB列)。 – 2012-08-15 21:19:57
例如請參見[SqlFileStream](http://msdn.microsoft.com/zh-cn/library/system.data.sqltypes.sqlfilestream.aspx)。我相信它需要2008年。不知道它是否需要R2。 – 2012-08-15 21:21:31
可能相關: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