2013-06-19 130 views
2

嗨編碼我只是想知道這是可能在數據庫中的任何其它圖像之前,將圖片插入數據庫。已有的圖像之前如何插入圖像數據庫

假設我有文件式裝載機上傳圖像和下拉列表中顯示這些圖像的優先級。 現在我有10個圖像在我的數據庫中,我綁定,優先與下拉列表。現在,當我上傳新圖像時,我可以看到圖像優先級到下拉列表中。現在,部分已經完成

現在我想的是,當我從下拉列表中上傳新的圖片,並選擇優先的是,在數據庫中的圖像的優先級之前的數據庫形象店。 例如: 我選擇文件向上裝載機按鈕,從下拉列表中上傳文件,並選擇優先號碼5。 現在圖像將在優先級5號和圖像是在優先數5存儲現在有優先權6號等..

enter image description here

enter image description here

我怎樣才能做到這一點?

+0

您可以包含存儲圖像和優先級的數據庫表的模式嗎? – EkoostikMartin

+1

海事組織你不應該關心存儲圖像的順序。只要你存儲了正確的圖像優先級,你可以按照你想要的順序查詢它們,方法是追加一個'ORDER BY priority'子句 – Omar

+0

我想我不清楚你們是誰 這只是一個例子:: 假設我的數據庫中有50張圖片,其優先級爲 現在,如果我想上傳新圖片,它的優先級應該是51,但是如果我從下拉列表中選擇優先級數字30 ,那麼應該上傳的圖片將是30和圖片其中 出現在30移到31等等,並且優先成像在50成爲51 –

回答

4

我相信你正在尋找的是使用SQL

Update table set Priority = Priority + 1 where Priority >= @InputtedPriority 

然後,您將需要從數據庫中任何超過10

DELETE FROM table where Priority > 10 

刪除編輯

一個簡單的更新查詢

由於閱讀了更多評論,它看起來像你需要運行SQL的第一行來更新你的表來移動p周圍的喧囂。一個簡單的SqlCommand和SQL服務器上的存儲過程將解決您的問題。對於執行SqlCommands和過程,快速查看SO應該不會太難找到您要查找的內容。

EDIT2

一個簡單的代碼例如,如果從下拉列表中選擇的優先級號碼30並將其設置爲priority然後應上傳的圖像將是30和圖像,其是存在於30將移動到31等,優先級爲50的圖像將變爲51.此代碼假定ID爲IDENTIY列。

string imageName; 
string description; 
string path; 
int priority; 

//(snip) populate the variables 

const string query = "Update imagesTable set Priority = Priority + 1 where Priority >= @Priority;" + 
       "insert into imagesTable (ImageName, Description, Path, Priority) values (@ImageName, @Description, @Path, @Priority)"; 

using (var connection = new SqlConnection(connectionString)) 
using (var command = new SqlCommand(query, connection)) 
{ 
    connection.Open(); 

    command.Parameters.AddWithValue("@ImageName", imageName); 
    command.Parameters.AddWithValue("@Description", description); 
    command.Parameters.AddWithValue("@Path", path); 
    command.Parameters.AddWithValue("@Priority", priority); 

    command.ExecuteNonQuery(); 
} 
+0

你能通過整個代碼來解釋我嗎? –

+0

@AnuragJain他只是做了,末了他只是給了你,然後執行插入的第一行,僅此而已。或者你不知道如何從C#運行查詢到SQL? –

+1

我寫了一些快速代碼,介意如果我只是將它添加到您的問題,而不是創建第二回答說同樣的事情? –