asp.net中的紧密连接问题 [英] close connection problem in asp.net

查看:52
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆