asp.net中的紧密连接问题 [英] close connection problem in asp.net
本文介绍了asp.net中的紧密连接问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好,我在这里遇到问题。
我有这样的代码
protected void btnSave_Click( object sender,EventArgs e)
{
使用(SqlConnection cn = new SqlConnection(Common.getConnectionString( myconnection)))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cn.Open();
if (ID!= -1)
{
/ / 更新查询
StringBuilder strSQL = new StringBuilder() ;
#region DataBase Query
strSQL.Append( @ 我的查询到此处进行更新);
#endregion
cmd.CommandText = strSQL.ToString();
#region命令参数
cmd.Parameters.Clear();
cmd.Parameters.Add( new SqlParameter( abc,txtabc.Text));
cmd.ExecuteNonQuery();
#endregion
尝试
{
cn.Open();
cmd.ExecuteScalar()。ToString();
}
catch (例外情况)
{
Common.LogSQLError(ex.ToString(),cmd,< span class =code-string> abc.aspx.cs, abc);
}
最后
{
cn.Close();
lblMessage.Text = 已成功更新;
}
}
else
{
// 插入查询
StringBuilder strSQL = new StringBuilder();
#region DataBase Query
strSQL.Append( @ 我的插入查询在这里);
#endregion
cmd.CommandText = strSQL.ToString();
#region命令参数
cmd.Parameters.Clear();
cmd.Parameters.Add( new SqlParameter( abc,txtabc.Text));
// cmd.ExecuteNonQuery();
#endregion
尝试
{
// ExecuteReader正在插入并选择新插入的ID
SqlDataReader drPlayer = cmd.ExecuteReader();
if (drPlayer.HasRows)
{
drPlayer.Read();
NewID = Convert.ToInt32(dr [ ID]);
}
dr.Close();
cn.Open();
cmd.ExecuteScalar()。ToString();
}
catch (例外情况)
{
}
最后
{
cn.Close();
}
Response.Redirect( abc.aspx );
}
}
}
}
这里的问题是显示为cn.Open的更新和消息显示需要关闭连接。请帮助我的错误是什么,我该怎么做...提前感谢
解决方案
删除此行
cmd.ExecuteNonQuery();\
并从此更改
尝试
{
cn.Open() ;
cmd.ExecuteScalar()。ToString();
}
这个让我们知道结果
尝试
{
cmd.ExecuteScalar()。ToString();
} < / pre > < /跨度>
Hello frens, I have a problem here.
I have a code like this
protected void btnSave_Click(object sender, EventArgs e)
{
using (SqlConnection cn = new SqlConnection(Common.getConnectionString("myconnection")))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cn.Open();
if (ID != -1)
{
//update query
StringBuilder strSQL = new StringBuilder();
#region DataBase Query
strSQL.Append(@"my query goes here for update");
#endregion
cmd.CommandText = strSQL.ToString();
#region Command Parameters
cmd.Parameters.Clear();
cmd.Parameters.Add(new SqlParameter("abc", txtabc.Text));
cmd.ExecuteNonQuery();
#endregion
try
{
cn.Open();
cmd.ExecuteScalar().ToString();
}
catch (Exception ex)
{
Common.LogSQLError(ex.ToString(), cmd, "abc.aspx.cs", "abc");
}
finally
{
cn.Close();
lblMessage.Text = "Updated Successfully";
}
}
else
{
//insert query
StringBuilder strSQL = new StringBuilder();
#region DataBase Query
strSQL.Append(@"my insert query goes here");
#endregion
cmd.CommandText = strSQL.ToString();
#region Command Parameters
cmd.Parameters.Clear();
cmd.Parameters.Add(new SqlParameter("abc", txtabc.Text));
//cmd.ExecuteNonQuery();
#endregion
try
{
//ExecuteReader is inserting and selecting the newly inserted ID
SqlDataReader drPlayer = cmd.ExecuteReader();
if (drPlayer.HasRows)
{
drPlayer.Read();
NewID = Convert.ToInt32(dr["ID"]);
}
dr.Close();
cn.Open();
cmd.ExecuteScalar().ToString();
}
catch (Exception ex)
{
}
finally
{
cn.Close();
}
Response.Redirect("abc.aspx");
}
}
}
}
Here problem is shown for the cn.Open of update and message shows that connection needs to be closed. Please help what is my error and what should i do there...thanks in advance
解决方案
Remove this line
cmd.ExecuteNonQuery();\
and change from this
try { cn.Open(); cmd.ExecuteScalar().ToString(); }
to this and let us know the results
try { cmd.ExecuteScalar().ToString(); }</pre>
这篇关于asp.net中的紧密连接问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文