当前位置: 首页 > 面试题库 >

从SQL Server CE获取@@ Identity时,“错误解析查询”

宇文鸿振
2023-03-14
问题内容

我正在编写一个简单的桌面应用程序,其中使用了本地SQL数据库(SQL Server CE)。这是有问题的部分:

SqlCeConnection conn = new SqlCeConnection("Data Source=|DataDirectory|\\App_Data\\Rosters.sdf");
System.Data.SqlServerCe.SqlCeCommand cmd = new SqlCeCommand();
cmd.Connection = conn;

cmd.CommandText = String.Format("Insert into Teams (LeagueID, TeamName, Color) values ({0},'{1}','{2}');SELECT @@IDENTITY;", leagueID, txtTeamName.Text.Replace("'", "''"), txtColor.Text.Replace("'", "''"));
conn.Open();
int teamID = (int)cmd.ExecuteScalar();
conn.Close();

问题是我打电话时遇到异常cmd.ExecuteScalar

异常消息显示为:

{“解析查询时出错。[令牌行号= 1,令牌行偏移量= 97,令牌有误= SELECT]”}

我已经通过直接查询在完全相同的数据库中运行了完全相同的命令,并且运行良好-这使我认为问题不在于SQL Server CE。

任何帮助将不胜感激。


问题答案:

SQL Server
Compact每个命令仅支持一条语句,因此首先使用executenonquery运行insert语句,然后使用executescalar获取标识,并且切记不要关闭两者之间的连接。



 类似资料:
  • 问题内容: 我正在尝试完成一项看似简单的任务,但该任务已经变成了数小时的冒险:从入门。 这是我的代码: 一个 答案 表明,我可能要做的就是更改。我试过了 这使退出工作(因为我现在返回的是标量而不是rowdata)(我需要保留GetData())。它还不能解决该问题,因为insertID变量仍设置为1。 我试图创建第二个在和设置属性为适配器“标”,但它仍然无法与变量中获得的值为1。 生成的插入命令是

  • 在运行我的程序后,我得到这个奇怪的崩溃发生大约2个小时运行它,说明它不能解析日期。 有没有人知道它为什么会给这个?因为当我在网上寻找,我发现它可能是由于一个不正确的格式,但由于我没有指定的格式这不是我的情况。 解析我的时间戳的代码如下: 注意:方法返回一个字符串,如: 更新#1:以下代码重复了此问题: 生成以下stacktrace

  • 我希望看到一条消息说“xyz行的语法错误”,“预期的。但相反,对于每一个由我丢失的逗号引起的后续错误,在xyz处都有一个获得一百个不可行的替代方案的列表。 有没有一种方法可以得到一个错误,这是由缺少逗号造成的?如果它会抱怨意外的var2令牌,也是完全可以的。

  • 问题内容: 我用antlr 4.4编写了这样的语法: 然后我使用antlr 4.4生成解析器和词法分析器,此过程成功 生成类后,我编写了一些使用语法的Java代码 以上所有代码都是CSV字符串的解析器,例如:““ a”,“ b”,c“ 窗口输出: 我想知道如何从代码背后的方法(getErrors()或…)中获取此错误,而不是由于输出窗口的结果 谁能帮我 ? 问题答案: 使用ANTLR进行CSV解析

  • 我写了一个查询 我在中设置了 2018-05-08 19:22:27.675错误1259--[nio-8080-exec-4]O.A.C.C.C.[.[.[/].[dispatcherServlet]:路径为[]的上下文中servlet[dispatcherServlet]的servlet.Service()引发异常[请求处理失败;嵌套异常为org.springframework.dao.inva

  • 所以,我从用户提示输入变量。如果变量小于0且大于10。如果用户输入