想请各位大侠帮忙改一下这里的代码,优化一下数据库连接部分代码使其达到最好。
private static void getResult(HttpContext context)
{
DataTable dt = new DataTable();
string connectString = ConfigurationManager.ConnectionStrings["student"].ConnectionString;
SqlConnection conn = new SqlConnection(connectString); //加载连接字符串
string name = context.Server.UrlDecode(context.Request.QueryString["username"]); //获得传来的值
string sql = "select * from student where name='" + name + "'"; //sql
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql,conn);
DataSet ds = new DataSet();
da.Fill(ds,"temp");
dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
context.Response.Write("1"); //存在
}
else
{
context.Response.Write("0"); //不存在
}
}
private static void getResult(HttpContext context)
{
DataTable dt = new DataTable();
string connectString = ConfigurationManager.ConnectionStrings["student"].ConnectionString;
SqlConnection conn = new SqlConnection(connectString); //加载连接字符串
string name = context.Server.UrlDecode(context.Request.QueryString["username"]); //获得传来的值
string sql = "select * from student where name='" + name + "'"; //sql
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql,conn);
DataSet ds = new DataSet();
da.Fill(ds,"temp");
dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
context.Response.Write("1"); //存在
}
else
{
context.Response.Write("0"); //不存在
}
}
DataSet ds = new DataSet();
da.Fill(ds,"temp");没必要这样大动干戈吧!把dataset都请来了!
string sql = "select count(*) from student where name='" + name + "'"; //sql
int Result= cmd.ExecuteScalar();
if (Result > 0)
{
context.Response.Write("1"); //存在
}
else
{
context.Response.Write("0"); //不存在
}
比如我想用sqlcommand对象
http://www.renrousousuo.com/Rounded.aspx
想法好是好,但我想用那个sqlcommand对象去做,不想用那个sqladapter对象去做。
用 select count(1) from MyTable
+
ado.net 的 SqlCommand 的 ExecuteScalar() 撷取单一个值
的专属方法即可,且性能最优。连 DataReader 都不用用了,更不要说超笨重又耗内存的 DataSet。