【发布时间】:2016-04-03 18:14:13
【问题描述】:
从ExecuteScalar() 得到一个奇怪的异常,我在网上找不到任何帮助:
无法继续执行,因为会话处于终止状态。
我正在使用 SqlConnection/SqlCommand
该命令是一个基本的 INSERT INTO... 有 105 列(和 105 个用于设置列数据的参数),后跟一个 SELECT SCOPE_IDENTITY();
我已经检查了连接字符串 - 它是正确的并且连接是打开的。
我什至不确定这个错误告诉我从哪里开始查看这个错误。
那么这个错误到底是什么意思呢?会话如何开始进入终止状态?
代码非常简单:
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(@"INSERT INTO VendorNote (VendorId, AdminComment...) VALUES (@VendorId, @AdminComment, ...); SELECT SCOPE_IDENTITY(); ", conn))
{
cmd.Parameters.AddWithValue("@VendorId", VendorId);
cmd.Parameters.AddWithValue("@AdminComment", AdminComment);
Id = (int) cmd.ExecuteScalar();
}
}
【问题讨论】:
-
您是仅为该命令创建连接,还是尝试在多个操作之间共享连接?
-
你能显示代码吗?
-
连接字符串或查询语法没有问题。即使我用一个简单的选择语句替换我的查询,我也会收到此错误。另外 - 在整个应用程序中成功使用此连接字符串。所以不知何故,会话必须被破坏或什么的。我现在正在回溯在此之前执行的代码,看看我是否无法缩小范围。
标签: c# sql sql-server executescalar