我在msdn的文档中找不到如何插入执行表名称参数的语句。通过平价推理,我尝试过:
var myNameOfTable = "wantedName";
db.Execute("CREATE TABLE @0 (id int IDENTITY (1,1) PRIMARY KEY, data ntext, dataOfAdd datetime)", myNameOfTable);
但是我得到了错误:
[令牌行号= 1,令牌行偏移量= 14,令牌错误= @ 0]
请帮帮我-如何创建名称为参数的表?
最佳答案
您通过选项提供表名,而不是使用字符串连接/string.Format进行查询。您至少使用Paramerized Query或更好地使用存储过程而不是内联查询,因为它们可能会导致sql injection。您可以阅读这篇文章Stored procedures vs. inline SQL进行比较。
db.Execute("CREATE TABLE " + myNameOfTable + " (id int IDENTITY (1,1) PRIMARY KEY, data ntext, dataOfAdd datetime)" );
您使用的语法可以通过string.Format来实现
db.Execute(string.Format("CREATE TABLE {0} (id int IDENTITY (1,1) PRIMARY KEY, data ntext, dataOfAdd datetime)", myNameOfTable));