Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C-asp.net-关于此编码的几个问题_C#_Asp.net - Fatal编程技术网

C# C-asp.net-关于此编码的几个问题

C# C-asp.net-关于此编码的几个问题,c#,asp.net,C#,Asp.net,1它的加载速度非常慢,需要超过20秒,但它确实加载了数据库。这正常吗 2我将hello和bye响应用于测试它是否连接良好。它无数次地写着“你好”和“再见”,就像“你好你好”和“再见”。。。这正常吗?我想这和问题3有关 3当我注释掉catchexception时,我得到一个错误,说InvalidOperationException超时已过期。我认为catch有助于捕捉那些偶然的错误,而不是一次又一次的错误。我想这意味着出了什么问题 protected void Page_Load(obje

1它的加载速度非常慢,需要超过20秒,但它确实加载了数据库。这正常吗

2我将hello和bye响应用于测试它是否连接良好。它无数次地写着“你好”和“再见”,就像“你好你好”和“再见”。。。这正常吗?我想这和问题3有关

3当我注释掉catchexception时,我得到一个错误,说InvalidOperationException超时已过期。我认为catch有助于捕捉那些偶然的错误,而不是一次又一次的错误。我想这意味着出了什么问题

    protected void Page_Load(object sender, EventArgs e)
    {

        SqlConnection Conn = new SqlConnection("Data Source=aserver;Initial Catalog=KennyCust;Persist Security Info=True;user id=sa;pwd=qwerty01");
        SqlDataReader rdr = null;
        string commandString = "SELECT * FROM MainDB";
        string commandString2 = "SELECT * From DetailDB";

        try
        {
            Conn.Open();
            SqlCommand Cmd = new SqlCommand(commandString, Conn);
            SqlDataAdapter sdp = new SqlDataAdapter(Cmd);
            DataSet ds = new DataSet();
            if (Conn != null)
            {
                Response.Write("Hello");
            }

            ds.Clear();
            sdp.Fill(ds);
            MasterCust.DataSource = ds.Tables[0];
            MasterCust.DataBind();
        }
        catch (Exception)
        {

        }
        finally
        {
            if (rdr != null)
            {
                rdr.Close();
            }
            if (Conn != null)
            {
                Conn.Close();
                if (Conn != null)
                {
                    Response.Write("Bye");
                }
            }
        }

这就是为什么仅仅接受异常通常不是一个好主意。很有可能是一个严重的问题导致大多数数据库请求超时,而不是得到一个有用的错误,您可以用它来找出问题是什么,您只是让用户抱怨系统要花很长时间才能加载页面

可能真正的问题在于数据库表结构或连接,或者您的数据太多,以至于执行SELECT*FROM。。。这会毁了你的表演


关于多条hello和bye消息,显然是某种原因导致页面加载被多次调用。如果此代码位于控件上,并且您正在将该控件的多个实例添加到页面中,则可能会发生这种情况。我也见过在其他情况下发生这种情况,但我记不清具体是什么情况。

听起来您的查询超时默认超时为30秒,但您正在用空的catch块吞下异常。检查数据集的大小或执行较小的查询在表单加载中从maindb中选择top 100*,如何仅在以下内容中执行SQL调用:

if(!(Page.IsPostback))
{

  //Do SQL in here

}

因此,SQL不会在每次刷新页面时运行。

空捕获被认为是错误的。。。如果显式忽略所有错误,显然不会得到任何错误。MainDB中有多少行/列?请告诉Austin。这是真的,但我认为问题是有什么东西导致这个循环20-30次,这很可能导致错误或延迟。我还没有找到解决这个问题的方法。我发现了一种称为tier 3的方法,我不应该在page_load中混合使用数据,因为这可能会出于某种原因导致问题。如果成功的话,我将在稍后发布:我有一个非常小的DB。不管怎样,我都试过代码,结果也是一样。我很高兴你这么说。我把这个贴在了别的地方,他们说这不是一个好问题…你在问什么=/我有一个很小的分贝。几列,像3行。MasterCust是一个GridView。我确实注释了mastercust代码,它运行起来没有延迟。没有打20次招呼,连接很好。好的,您可以向sql连接字符串添加一个超时参数,这样thisdatasource=aserver;初始目录=KennyCust;持久安全信息=True;用户id=sa;pwd=qwerty01成为此数据源=A服务器;初始目录=KennyCust;持久安全信息=True;用户id=sa;pwd=qwerty01;timeout=1500我认为默认值是15秒,因此将其设置为1500秒。