2011-06-07 28 views
0

我想使用從計數函數派生的數字來設置其中一個字段的值。但我該怎麼做?插入命令中的SQL計數函數

StringBuilder insertCommand = new StringBuilder(); 
insertCommand.Append("INSERT INTO Threads(UsersID,TopicsID,Date,ThreadTitle,ThreadParagraph,ThreadClosed,Views,Replies,PageNumber)"); 
    insertCommand.Append("VALUES(@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0,0,0,@pageNumber)"); 

要設置頁碼參數我想要做這樣的事情:

sqlCommand.Parameters.Add("@subTopic", SqlDbType.Int); 
    sqlCommand.Parameters["@subTopic"].Value = "Count(ThreadID)/20"; 

我想輸入一個數字,是整除20進入的PageNumber字段表線程。 注意:數字應該是這樣的..而不是返回10/20 = 0.5的一個整數,則它應該返回0。

回答

1

可以使用查詢插入,這樣的:

INSERT INTO Threads (UsersID,TopicsID,Date,ThreadTitle,ThreadParagraph, 
    ThreadClosed,Views,Replies,PageNumber) 
SELECT @uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle, 
    @questionParagraph,0,0,0,FLOOR(Count(ThreadID)/20) 
FROM table 

假設subtopic參數名稱是一個錯字,實際上你的意思是pagenumber。雖然你永遠不知道!

+0

是的,這是一個錯字,謝謝。 FLOOR做什麼? – Matrix001 2011-06-07 16:20:42

+0

那麼你說你想要0而不是0.5。這就是'FLOOR'所做的。 – Blindy 2011-06-07 16:23:54

+0

現在的問題是它不會識別ThreadID(它是主鍵)並增量。那是因爲threadID是一個uniqueIdentifier。我把整個東西都設置爲TopicID。 FLOOR(Count(@TopicsID)...但它給我1.(TopicID是一個自動遞增的int,在連接到ThreadsT​​able的主題表中。它們都一起增加......爲什麼我沒有得到TopicID的真實計數。它是6,但當我解壓縮它是1. :( – Matrix001 2011-06-07 16:36:57