2012-03-21 175 views
2

我的行在某個列中有一個NVARCHAR值。我希望能夠連接到這個值,例如,如果行存儲「Hello」,我希望能夠運行db.Execute命令來保持「我的名字是厄爾」上的「Hello」和標籤,以便「你好,我的名字是厄爾「存儲在行中。SQL Server中連接的最佳實踐?

這樣做的最佳做法是什麼?

db.Execute("UPDATE table SET description = description + '[email protected] likes this' WHERE id = @1",user, id); 

這不接受參數,並實際上插入@ 0和@ 1到數據庫中。爲什麼是這樣 ?

+0

你不能使用包含連接的視圖來查詢數據嗎?也就是說,將其存儲爲「純」形式,並以較不純的形式進行查詢。 – Reddog 2012-03-21 02:45:54

+0

或者你可以使用觸發器 - http://msdn.microsoft.com/en-us/library/ms175943.aspx – Reddog 2012-03-21 02:52:50

+0

什麼類型的對象是'db'? 'Webmatrix.Data.Database'? – 2012-03-21 03:21:21

回答

3

只是一個猜測,但嘗試移動@0了單引號:

db.Execute(@" 
    UPDATE table 
    SET description = description + @0 + ' likes this' 
    WHERE id = @1",user, id); 
+0

* Facepalm *。當然,這個固定了!感謝你的回答;爲了防止我的愚蠢,早上2點! :) – 2012-03-21 08:54:37

1

如果你有你想Concat的消息欄和行號爲5的表mytable的...

UPDATE myTable 
SET message = concat(message, N' my name is earl') 
WHERE id = 5; -- some where condition that identifies row(s) 
+0

這裏的N是什麼?我以前從來沒有見過這種符號:) – 2012-03-21 02:53:56

+4

'N'string''是用於nvarchar表示而不是'string'的varchar – hkf 2012-03-21 02:54:36

+0

當我嘗試這個時,出現''concat''錯誤內置函數名稱「,但是,當我嘗試上面的代碼時,參數不會傳遞到查詢中。 – 2012-03-21 03:10:40