gpt4 book ai didi

c# - 服务器错误 'executenonquery requires an open and available connection'

转载 作者:太空宇宙 更新时间:2023-11-03 21:26:13 25 4
gpt4 key购买 nike

我在服务器上遇到了这个错误,而不是在本地,当遇到这个错误时,我重新上传了相关的类文件。解决了这个问题,但不是永久的。

错误:

executenonquery requires an open and available connection. The connection's current state is open.

代码:

int n;

try
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = DataConnection.Con;
cmd.CommandText = "sp_InsertUpdateDeleteValidationDate";
cmd.CommandType = CommandType.StoredProcedure; cmd.CommandTimeout = 0;
cmd.Parameters.AddWithValue("@Task", "CheckExist");
cmd.Parameters.AddWithValue("@id", 0);
cmd.Parameters.AddWithValue("@AdId", "");
cmd.Parameters.AddWithValue("@Username", "");
cmd.Parameters.AddWithValue("@DOE", DOE);
cmd.Parameters.AddWithValue("@ExpieryDate", DateTime.Now);
cmd.Parameters.AddWithValue("@DOR", DateTime.Now);
cmd.Parameters.Add("@flag", SqlDbType.Int).Direction = ParameterDirection.Output;

if (cmd.Connection.State == ConnectionState.Closed)
{
cmd.Connection.Open();
}
cmd.ExecuteNonQuery();
n = Convert.ToInt32(cmd.Parameters["@flag"].Value);
return n;
}
}
catch (SqlException Ex)
{

return 0;
}

最佳答案

您只能在 DataConnection 类中创建一个连接。您应该为每个数据库调用创建一个新连接,并让驱动程序的连接池负责有效地重用它们。

将您的 DataConnection 类更改为:

public class DataConnection
{
public static SqlConnection Con
{
get
{
return new SqlConnection(ConfigurationManager
.ConnectionStrings["conn"].ConnectionString);
}
}
}

并在像 ekad 的回答中那样使用连接时使用 using 语句:

using (SqlConnection conn = DataConnection.Con)
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
//use the command here
}
}

关于c# - 服务器错误 'executenonquery requires an open and available connection',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26837508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com