我試圖在數據庫中修改一個表,如下所示:有麻煩與SQL和C#
using (SqlCeCommand com = new SqlCeCommand("INSERT INTO RamResults(Result, Date) VALUES(@num, @date)", con))
{
com.Parameters.AddWithValue("@num", num);
com.Parameters.AddWithValue("@hostname2", hostname2);
com.Parameters.AddWithValue("@date", Form1.date);
com.ExecuteNonQuery();
}
雖然表名具有可變前綴(主機名2)。所以我試圖做到以下幾點:
("INSERT INTO @hostname2 + RamResults(Result, Date) VALUES(@num, @date)", con))
但沒有運氣,任何人有任何想法來解決這個問題?
錯誤消息:
有解析查詢錯誤。 [令牌行號= 1,令牌 行偏移= 13,令牌出錯= @主機名2]
您不能爲表名使用SQL參數(即'@')。而且我甚至不會建議字符串連接來做同樣的事情。 – Yuck 2012-02-09 13:24:40
不幸的是,雖然它不會被建議它實際上是唯一的答案。不過,我同意尤克 - 這個問題應該從另一個角度來解決。例如,爲什麼你需要動態表名前綴? – 2012-02-09 13:26:20