conn = new SQLiteConnection("Data Source=nk.db");
var items = from n in internalMap.storage select n.paramName;
conn.Open();
cmd = new SQLiteCommand("CREATE TABLE @table_name (name TEXT)",conn);
//create table for the index
cmd.Parameters.AddWithValue("@table_name", j);
cmd.ExecuteNonQuery();
执行此行时“cmd.ExecuteNonQuery();”我得到以下异常
“@ table_name \”附近的SQLite错误:语法错误“
我所做的所有搜索似乎表明你是这样做的。
我不知道出了什么问题
答案 0 :(得分:5)
在我使用过的大多数数据库中,DDL命令不能像这样参数化,甚至DML语句也不能通过表名(或字段名等)进行参数化。通常只能参数化表达式值。
在大多数情况下,这是可以的,因为您通常没有用户提供的数据,例如名称中的表格,并且没有格式化考虑因素,因为可能有数字和日期/时间等事情...所以SQL语句中的普通字符串替换可能是你能做的最好的,虽然它可能很难看。