2010-11-18 4 views
0

Ниже приведенный код занимает бесконечно долгое время для загрузки в веб-браузере, когда я нажимаю кнопку Button2, мой браузер продолжает загружать .... и не отображает вывод. что я могу сделать в моем приведенном ниже коде для улучшения скорости обработки.оптимизация кода asp.net C#

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 
+0

Первые вещи: где это длится долго? В базе данных или в коде .NET? –

+0

После того, как я попытаюсь запустить свой код – Ishan

+0

У вас есть индексы на столбцах reg_no, jud1 и jcode? – mikel

ответ

0

1- Смотрите, если этот запрос выберите jname, jcode из heardt внутреннего соединения судить по heardt.jud1 = jcode принимая как много времени.

2-если вы можете использовать другой драйвер, чем ODBC для MySQL, и я предполагаю, что вы работаете с MySQL Database

0
  1. вам действительно нужно, чтобы захватить все столбцы с первого SQL делать? («select * ...»)
Смежные вопросы