我试图在数据库中修改一个表,如下所示:有麻烦与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