代码优化asp.net c#

时间:2010-11-18 07:34:53

标签: c# asp.net sql mysql

以下给出的代码在Web浏览器中加载时间过长,当我点击Button2时,我的浏览器继续加载....并且不显示输出。我可以在下面给出的代码中做些什么来提高处理速度。

protected void Button2_Click(object sender, EventArgs e)
    {
        String a = DropDownList1.SelectedItem.Value;
        String b = DropDownList3.SelectedItem.Value.PadLeft(3, '0');      
        String c = TextBox2.Text.PadLeft(5,'0').ToString();
        String d = TextBox3.Text.ToString();
        String digit = a+ b  + c + d;
        string sql = "select * from testcase.main where reg_no =?";
        string sql1 = "select jname, jcode from heardt inner join judge ON heardt.jud1 = jcode";

try
            {
                using (OdbcConnection myConn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;"))
                {  
                     using (OdbcCommand cmd = new OdbcCommand(sql, myConn)) 
                        {
                            myConn.Open();
                            cmd.Parameters.AddWithValue("?", digit);
                            using (OdbcDataReader MyReader = cmd.ExecuteReader())
                                 {
                                    //**
                                    while (MyReader.Read())
                                    {
                                        String f = MyReader["pet_name"].ToString();
                                       String g = MyReader["res_name"].ToString();

                                        Label9.Visible = true;
                                        Label9.Text = f;

                                        Label10.Visible = true;
                                        Label10.Text = "VS";

                                        Label11.Visible = true;
                                        Label11.Text = g;

                                     }
                                 }
                         }
                }
            }
            catch (Exception e1)
            {
                Response.Write(e1.ToString());
            }
//***********************
try
        {
            using (OdbcConnection myConn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;"))
            {
                using (OdbcCommand cmd1 = new OdbcCommand(sql1, myConn))
                {
                    myConn.Open();

                    using (OdbcDataReader MyReader1 = cmd1.ExecuteReader())
                    {
                        //**
                        while (MyReader1.Read())
                        {
                            String f = MyReader1["jname"].ToString();
                            DropDownList4.Items.Add(f);

                        }
                    }
                }
            }
        }
        catch (Exception ee1)
        {
            Response.Write(ee1.ToString());
        }
 }

有没有其他方法可以在不使用以下查询的连接操作的情况下执行查询?

select jname, jcode from heardt inner join judge ON heardt.jud1 = jcode

2 个答案:

答案 0 :(得分:0)

1-看看这个查询是否选择了jname,来自heart内部联接的jcode判断ON heart.jud1 = jcode花了多少时间。

2 - 看看你是否可以使用ODBC以外的其他驱动程序,我假设你正在使用MySQL数据库

答案 1 :(得分:0)

  1. 你真的需要从第一个sql中获取所有列吗? (“选择* ...”)