繁体   English   中英

System.Data.SQLite参数未被替换

[英]System.Data.SQLite parameters not being substituted

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

我所做的所有搜索似乎表明你是如何做到的。

我不知道出了什么问题

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

在大多数情况下这是可以的,因为你通常没有用户提供的数据来表示名称中的表格,并且没有格式化考虑因素,因为可能存在数字和日期/时间......所以简单的字符串SQL语句中的替换可能是你能做的最好的,虽然可能是丑陋的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM