ExecuteNonQuery需要一个开放且可用的连接。 连接的当前状态为关闭。
我在这里做错了什么?我假设您可以重用连接?
谢谢你的帮助!
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()))
{
cn.Open();
// If we are reverting to an old type
if (pageAction == "revert")
{
debug.Text = "FLAG 1";
// Get the revert ID
int revertingID = int.Parse(Request.QueryString["revID"]);
bool rowsReturned = false;
debug.Text = "FLAG 2 - " + revertingID.ToString();
// Set all to 0
using (SqlCommand cmd = new SqlCommand("SELECT ID FROM tblSiteSettings WHERE ID = " + revertingID, cn))
{
// If it exists
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (rdr.Read())
{
rowsReturned = true;
}
rdr.Close();
}
debug.Text = "FLAG 3 - " + rowsReturned.ToString();
// Set new active and reset others
if (rowsReturned == true)
{
using (SqlCommand cmd = new SqlCommand("UPDATE tblSiteSettings SET isActive = 1 WHERE ID = " + revertingID, cn))
{
cmd.ExecuteNonQuery();
}
using (SqlCommand cmd = new SqlCommand("UPDATE tblSiteSettings SET isActive = 0 WHERE ID <> " + revertingID, cn))
{
cmd.ExecuteNonQuery();
}
}
//debug.Text = "FLAG 4 - ";
}
您的问题是:
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.ExecuteReader()'
如果您要在“摆脱连接”之前再次使用该连接,则应该致电。如果您想了解CommandBehaviour.CloseConnection
零件的功能/含义,那么SqlCommand.ExecuteReader的文档是一个不错的选择。也有文档告诉您CommandBehaviour枚举的所有可能值是什么。基本上CommandBehaviour.CloseConnection
执行以下操作:
执行该命令时,如果关闭了关联的DataReader对象,则关闭了关联的Connection对象。
如果您不需要特别指定CommandBehaviour,则可以指定CommandBehaviour.Default
或完全不指定一个。CommandBehaviour.Default是:
该查询可能返回多个结果集。查询的执行可能会影响数据库状态。Default没有设置CommandBehavior标志,因此调用ExecuteReader(CommandBehavior.Default)在功能上等效于调用ExecuteReader()。
问题内容: 在qa中使用一些后,我们得到以下错误 我们使用EntityFramework的单例实例 SOF建议: 服务器停机导致EF从无效操作异常中恢复 1)偶尔创建一个新的ContectObject实例 2)将池连接数配置为更高 解决此问题的最佳做法是什么? 我认为为每个Dal操作创建一个新的contectObject很浪费 问题答案: 我认为为每个Dal操作创建一个新的contectObjec
问题内容: 我在数据库中运行了此查询: 我想知道与数据库的连接总数。第一个查询的总和与第二个查询的总和相等,但第三个查询返回的行数不同。 我想知道第三个查询返回什么?我在第三个查询的结果中看到一些状态为。这是什么意思?连接是空闲的,还是已在池中准备好了?如果我的结果中有很多联系,那意味着什么? 谢谢 问题答案: 的状态来会话连接,但不主动运行任何东西(比如最简单的定义,虽然可能不是100%准确的,
这是我对Rest模板的配置,
我有三个实体基本信息,性别和部门。如果我加入了basicInfo和gender模型,那么它工作得很好,但是当我想加入department和其他两个实体时,就会显示 .QuerySyntaxException:需要连接的路径! 我的Dto类 下面是我的存储库类: 最后我得到了这个错误
我正在尝试按照本教程实现nodejs mysql数据库。我知道 查询()是Pool.GetConnection()+Connection.Query()+Connection.Release()的快捷方式。 在本文中,数据库配置为: 这是可以用作: 但是,我真的不明白 如果使用pool会自动释放连接,为什么我们需要这样做呢?
问题内容: 我在客户端上将nodejs与socket.io和angularjs一起使用。我从互联网上获取了angular- socketio示例,并向其中添加了方法。 套接字服务: 控制器: 但是,当我尝试使用此方法断开连接时,出现错误: 而且我不知道在哪里挖…… 问题答案: [更新] 是Angular的内部私有变量,因此您不应该真正依赖于此类事情。伊戈尔在另一个答案中描述了一些处理此问题的建议,