C# SQLite中参数的使用
我用我的C# SQLite中参数的使用,c#,winforms,sqlite,parameters,windows-ce,C#,Winforms,Sqlite,Parameters,Windows Ce,我用我的SQLitedb存储我的信息,它工作正常。但是我想使用参数 我修改此行以设置值和正常工作: cmd.CommandText = String.Format("INSERT INTO users ("+data[0]+", "+data[1]+") VALUES (@4,@5);"); p = new SQLiteParameter("@4", System.Data.DbType.String); p.Value = data[4]; cmd.Parameters.Add(p); p =
SQLite
db存储我的信息,它工作正常。但是我想使用参数
我修改此行以设置值
和正常工作:
cmd.CommandText = String.Format("INSERT INTO users ("+data[0]+", "+data[1]+") VALUES (@4,@5);");
p = new SQLiteParameter("@4", System.Data.DbType.String);
p.Value = data[4];
cmd.Parameters.Add(p);
p = new SQLiteParameter("@5", System.Data.DbType.String);
p.Value = data[5];
cmd.Parameters.Add(p);
错误:但是如果我想对列名使用参数
,它会说“@0”附近有语法错误:
在这种情况下是否可以使用参数
?代码怎么了
谢谢你的帮助 无法参数化列名。第一种方法可以
或者您可以将所有这些作为参数发送到存储过程,并在db级别动态构建查询并执行 您的列名依赖于用户数据是否有充分的理由?@notfed。是的,在我的数据库中有20列,我必须只在用户端选择的5列中插入数据注意:不惜一切代价避免String.Format!!Def String.Concat在本例中..@bang感谢您的建议。我会检查你的建议。表名和可能所有其他数据库对象也是如此!
cmd.CommandText = String.Format("INSERT INTO users (@0, @1) VALUES (@4,@5);");
p = new SQLiteParameter("@0", System.Data.DbType.String);
p.Value = data[0];
cmd.Parameters.Add(p);
p = new SQLiteParameter("@1", System.Data.DbType.String);
p.Value = data[1];
cmd.Parameters.Add(p);
p = new SQLiteParameter("@4", System.Data.DbType.String);
p.Value = data[4];
cmd.Parameters.Add(p);
p = new SQLiteParameter("@5", System.Data.DbType.String);
p.Value = data[5];
cmd.Parameters.Add(p);