2017-04-20 56 views
0

我有一個visual studio sql server數據庫項目和一個Images表。我需要在PostDeployment腳本中插入默認圖像,因爲此圖像將用於具有空圖像的所有實體。如何將該圖像存儲在項目中,以及如何在腳本中訪問它?使用Visual Studio數據庫項目插入帶PostDeployment腳本的圖像

將此圖像插入數據庫項目是一個很好的做法?我有一個WindowsService項目和一個帶有實體框架的ASP.NET MVC項目。我應該在其他兩個項目的每一個項目中的某種初始驗證中插入此圖像嗎?

回答

2

有幾種方法可以做到這一點。

給定一個表

create table testImage 
(id int, 
myImage varbinary(max)); 

您可以從文件的東西,如插入一張圖片:

INSERT INTO testImage (id, myImage) 
SELECT 1, bulkcolumn 
FROM openrowset(BULK 'D:\x\dZLx1.png', single_blob) as myImage 

有幾個潛在的頭痛在這裏,你需要保持路徑的軌跡以某種方式在您的項目中的圖像,我認爲有幾個安全相關的情況下OPENROWSET無法正常工作。

它可能是更可靠的,以您的桌面上重新做一次,然後SELECT值出在INSERT語句如

IF NOT EXISTS (SELECT * FROM testIMAGE where ID = 2) 
BEGIN 
INSERT INTO testImage VALUES 
(2,0x89504E470D0A1A0.....) 
END 

(完整的腳本在這裏:https://gist.github.com/gavincampbell/a25431dffd3555563a052c297a32415e)使用

由於你會意識到,當你嘗試這個,結果字符串將是。我認爲最好將它保存在一個單獨的腳本中,並從:r的主要後期部署腳本中引用它(道歉,如果你已經知道了!)。另外請記住,你不需要引用二進制「字符串」。

相關問題