- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
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 enumeration 的所有可能值是什么是。本质上,CommandBehaviour.CloseConnection
执行以下操作:
When the command is executed, the associated Connection object is closed when the associated DataReader object is closed.
如果您没有特别需要指定 CommandBehaviour,则可以指定 CommandBehaviour.Default
,或者根本不指定。 CommandBehaviour.Default 是:
The query may return multiple result sets. Execution of the query may affect the database state. Default sets no CommandBehavior flags, so calling ExecuteReader(CommandBehavior.Default) is functionally equivalent to calling ExecuteReader().
关于c# - ExecuteNonQuery 需要一个打开且可用的连接。连接的当前状态是关闭的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3548056/
Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
我在 asp.net mvc 中有一个 webapp,带有一个通过 ODBC 驱动程序链接的 mysql 数据库。 在旧环境中一切都运行良好,但现在我必须转移到新服务器(新操作系统、新 IIS、新 m
我不是一个很好的程序员,但我认为代码是正确的。任何人都可以检查它是否有错误,因为我总是在 executenonquery 行出错。 错误是: {"Incorrect syntax near '9'."
我正在尝试编写一个通用的保存函数,并且我正在使用 Dbcommand。我的代码是: private static int Save(CommandType commandtype, string co
您好,我正在尝试使用 ADO.NET 将数据插入数据库。这是我的代码。这是我的 C# 代码: public void CreateBook(FormCollection collection)
我有以下代码,它没有更新数据库。该代码正在执行它应该执行的操作,但是当我执行 ExecuteNonQuery() 时,它不会将任何内容保存回数据库。连接字符串没有问题,因为它与正在运行的选择查询相同。
我正在使用 ExecuteNonQuery 在数据库中插入一条记录并返回新记录的 ID。它插入正常,但输出参数未更新。 尝试在 SSMS 中执行存储过程并且运行良好。只有在使用 ExecuteNonQ
我认为连接没有问题,因为当我打开它时,它不会抛出任何错误。所以我猜错误是在我执行命令时出现的。这是我的代码: OleDbCommand cmd = new OleDbCommand("SELECT *
我正在使用 OracleCommand.ExecuteNonQuery() 插入到表中。一切正常,但偶尔没有插入记录。那么 ExecuteNonQuery() 是否有可能不插入记录也不抛出异常? 我没
我有最简单的代码... // Connect to database etc string sqlStr = "INSERT INTO .... ... "; MySqlCom.CommandText
我想检查数据库中的所有表并删除具有特定 id 的所有行。当行数较小时,效果很好。 在特定表中,行数为 900000,这不再起作用。 这是我当前的代码: Using connection = New M
这是我的代码: Document doc = new Document(); SqlConnection cnn = Ketnoi.GetSqlConnection(); cnn.Open(); Sq
我有这段代码,运行时给出此错误ExecuteNonQuery:Connection属性尚未初始化。 而且我有sql数据库。 它的名字叫Cost。 我有这段代码,运行时给出此错误ExecuteNonQu
我的sql server 2008数据库中有一个表 COMMENT(idcom,content,username); 该表有2条记录,其中username = lecturer 现在,我要删除所有具有
这是我的代码: private void loadlist() { comboBox1.Items.Clear(); cn.Open(); cmd.Co
我的代码在下面的 ExecuteNonQuery 行超时。我不知道为什么。我已将超时时间增加到 900,但它仍然超时。 using (var conn = new SqlConnection(loca
我正在使用 Microsoft Data-Tier Application framework基于 DacPackage 创建部署脚本目的。我正在尝试使用 Microsoft.SqlServer.Ma
我正在使用基于 WinForms 的 C# 工具,它有一个附加的基于 MDF 文件的数据库。我正在尝试使用 SqlCommand.ExecuteNonQuery() 方法将记录保存到这个附加的 MDF
我存储的过程如下: ALTER PROC pr_Update_Users_Nomination ( @UserID AS VARCHAR(100), @Nominated A
我正在尝试在 C# 中的循环内插入一条数据库记录。 当我像这样对值进行硬编码时它会起作用: string query3 = "INSERT INTO furniture (room_id,me
我是一名优秀的程序员,十分优秀!