如何修复超时过期的异常。 [英] How do I fix a timeout expired exception.

查看:63
本文介绍了如何修复超时过期的异常。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试更新字段并且代码没有错误但是当它到达ExcecuteNonQuery()时,程序冻结大约15秒然后抛出错误说超时已过期。更新存储过程非常正常。



以下是更新方法的代码。

I am trying to update fields and the code has no errors but when it gets to ExcecuteNonQuery() the program freezes for about 15 seconds then throws an errors saying timeout expired. The update stored procedure works perfectly fine.

Below is the code for the update method.

public void UpdateChurch(Church church)
{
    using (SqlConnection con = new SqlConnection(connectionString))
    {
        dbConn.Open();
        SqlCommand cmd = new SqlCommand("sp_UpdateChurchInfo", con);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add(new SqlParameter("@ChurchID", SqlDbType.Int));
        cmd.Parameters["@ChurchID"].Value = church.ChurchID;

        cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 50));
        cmd.Parameters["@Name"].Value = church.Name;

        cmd.Parameters.Add(new SqlParameter("@Address", SqlDbType.NVarChar));
        cmd.Parameters["@Address"].Value = church.Address;

        cmd.Parameters.Add(new SqlParameter("@SubCode", SqlDbType.Int));
        cmd.Parameters["@SubCode"].Value = church.SubCode;

        cmd.Parameters.Add(new SqlParameter("@City", SqlDbType.NVarChar, 50));
        cmd.Parameters["@City"].Value = church.City;

        cmd.Parameters.Add(new SqlParameter("@Tell", SqlDbType.NVarChar, 10));
        cmd.Parameters["@Tell"].Value = church.Tell;

        cmd.Parameters.Add(new SqlParameter("@Fax", SqlDbType.NVarChar, 10));
        cmd.Parameters["@Fax"].Value = church.Fax;

        cmd.Parameters.Add(new SqlParameter("@EmailAddress", SqlDbType.NVarChar, 50));
        cmd.Parameters["@EmailAddress"].Value = church.EmailAddress;

        cmd.Parameters.Add(new SqlParameter("@WebAddress", SqlDbType.NVarChar, 50));
        cmd.Parameters["@WebAddress"].Value = church.WebAddress;

        cmd.Parameters.Add(new SqlParameter("@NoOfMembers", SqlDbType.Int));
        cmd.Parameters["@NoOfMembers"].Value = church.NoOfMembers;

        cmd.CommandTimeout = 180;

        try
        {
            cmd.Connection.Open();
            cmd.ExecuteNonQuery();  //here is where the problem occurs.

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error",
            MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    }
}

推荐答案

我认为改变会话超时在web.config文件中,所以试一试。
I think change session time out in web.config file, so try it out.


这篇关于如何修复超时过期的异常。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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