【发布时间】:2010-11-18 07:34:52
【问题描述】:
下面给出的代码在网络浏览器中加载需要无限长的时间,当我单击 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());
}
}
下面的查询有没有其他不使用join操作的方式来执行查询??
select jname, jcode from heardt inner join judge ON heardt.jud1 = jcode
【问题讨论】:
-
第一件事:哪里需要很长时间?在数据库中,还是在 .NET 代码中?
-
你有关于列 reg_no、jud1 和 jcode 的索引吗?
-
对于初学者 - 为什么你应该使用 MySQL .NET 连接器时使用 ODBC?
-
@foo 我该如何使用它?有什么教程可以使用吗?我的老师告诉我要使用 ODBC 本身。