1

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

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();

有人找出问题所在吗?

4

3 回答 3

3

有人找出问题所在吗?

只需 throw awayUSE子句并改为执行此查询:

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

USE是 T-SQL 中数据库之间的上下文切换子句,此处不适用。

于 2013-01-22T10:40:07.160 回答
0

您的命令文本关于参数化方面是错误的。尝试使用@title@ean不使用?,?。像这样;

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

也删除USE Movie部分。

看看C# SqlParameter哪篇文章很棒。

于 2013-01-22T10:44:36.170 回答
0

尝试:

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

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

于 2013-01-22T10:52:59.257 回答