System.Data.SQLite 参数未被替换

本文关键字:替换 参数 Data SQLite System | 更新日期: 2023-09-27 17:55:25

            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错误:语法错误"

我所做的所有搜索似乎都表明这就是你的做法。

我不知道出了什么问题

System.Data.SQLite 参数未被替换

在我使用的大多数数据库中,DDL 命令不能像这样参数化,甚至 DML 语句也不能通过表名(或字段名等)参数化。通常只能参数化表达式值

在大多数情况下,这是可以的,因为您通常没有用户为名称中的表格等内容提供的数据,并且没有像数字和日期/时间之类的内容那样的格式考虑......因此,SQL 语句中的纯字符串替换可能是您能做的最好的事情,尽管它可能很丑陋。