日志含义SqlCeExpression被捕获,删除查询错误

本文关键字:删除 查询 错误 SqlCeExpression 日志 | 更新日期: 2023-09-27 17:54:58

我试图插入数据到我的紧凑数据库,我得到了这个错误:

There was an error parsing the query. [ Token line number = 1,Token line offset = 1,Token in error = USE ]

下面是我的代码,大部分是在网上找到的:

                SqlCeConnection conn = new SqlCeConnection(@"Data Source=|DataDirectory|'CompactDatabase.sdf");
                conn.Open();
                SqlCeCommand cmd = conn.CreateCommand();
                cmd.CommandText = "USE Movie INSERT INTO Movie(title, ean) VALUES(?,?)";
                cmd.Parameters.AddWithValue("@title", title);
                cmd.Parameters.AddWithValue("@ean", ean);
                cmd.Prepare();                
                cmd.ExecuteNonQuery();
谁知道问题出在哪里了?

日志含义SqlCeExpression被捕获,删除查询错误

谁知道问题出在哪里了?

扔掉USE子句,执行下面的查询:

INSERT INTO Movie(title, ean) VALUES(?,?)

USE是T-SQL中数据库间的上下文切换子句,在这里不适用

尝试:

USE Movie; INSERT INTO Movie(title, ean) VALUES(?,?)

注意; IIRC,这与SQL中的GO相同。

你的命令文本是错误的参数化的一面。尝试@title@ean,而不是?,?。像这样的;

cmd.CommandText = "INSERT INTO Movie(title, ean) VALUES(@title, @ean)";

删除USE Movie部分。

查看C# SqlParameter,这是一篇很棒的文章