求大哥给我看看怎么写这段程序

itit54 2009-12-13 07:57:00
下面是完整的数据查询语言,但是我发现执行的效率很低,希望高手帮我看看有没有其他高效率的解决办法?
希望给出实例代码,谢谢~~~


SqlConnection con = new SqlConnection("server=911COM\\SQLEXPRESS;uid=p2p;pwd=123456;database=p2p");
con.Open();
string cmdtxt="insert into users(yonghuming,pwd,email,tuijiangren) values('" + TextBox1.Text + "','"+ TextBox2.Text +" ','" + TextBox3.Text + "','" + TextBox5.Text + "')";
SqlCommand cmd = new SqlCommand(cmdtxt, con);
int count = Convert.ToInt32(cmd.ExecuteScalar());
cmd.CommandText = "select id,yonghuming from users where yonghuming='" + TextBox1.Text + "'";
cmd.ExecuteNonQuery();
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
string id = (sdr["id"]).ToString();
sdr.Close();
cmd.CommandText = "insert into checkmail(users_id,keys) values(" + id + ",'" + srtHtmlTemplate4 + "')";
cmd.ExecuteNonQuery();
con.Close();
...全文
163 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xugan666 2009-12-13
  • 打赏
  • 举报
回复
111
itit54 2009-12-13
  • 打赏
  • 举报
回复
非常感谢kssys对我等菜鸟的照顾,非常感谢
kssys 2009-12-13
  • 打赏
  • 举报
回复
con.close();
kssys 2009-12-13
  • 打赏
  • 举报
回复
你的代码需要三次往返,其中的第二次和第三次可以节省为1次。另建议用SQL参数的形式插入资料,否则会有安全性问题。以下为代码:
SqlConnection con = new SqlConnection("server=911COM\\SQLEXPRESS;uid=p2p;pwd=123456;database=p2p");
con.Open();
string cmdtxt="insert into users(yonghuming,pwd,email,tuijiangren) values('" + TextBox1.Text + "','"+ TextBox2.Text +" ','" + TextBox3.Text + "','" + TextBox5.Text + "')";
SqlCommand cmd = new SqlCommand(cmdtxt, con);
cmd.ExecuteNonQuery();
int count = Convert.ToInt32(cmd.ExecuteScalar());
cmd.CommandText = "select id,yonghuming from users where yonghuming='" + TextBox1.Text + "'";
cmd.ExecuteNonQuery();
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
string id = (sdr["id"]).ToString();
sdr.Close();
cmd.CommandText = "insert into checkmail(users_id,keys) values(" + id + ",'" + srtHtmlTemplate4 + "')";
cmd.ExecuteNonQuery();
con.Close();

cmd.CommandText="insert into checkmail(users_id,keys)"
cmd.CommandText+="select top 1 id,'" + srtHtmlTemplate4 + "' ";
cmd.CommandText+="FROM users ";
cmd.CommandText+="where yonghuming='" + TextBox1.Text + "'";
cmd.ExecuteNonQuery();
maxiaoyuanXM 2009-12-13
  • 打赏
  • 举报
回复
改成存储过程,多条一起执行,效率肯定高些的,
再者,返回插入ID的时候,用这个Select @@Identity不更好嘛
wuyq11 2009-12-13
  • 打赏
  • 举报
回复
使用数据库操作类sqlhelper
调用存储过程,批操作

using(SqlConnection con = new SqlConnection(""))
{
con.Open();


con.Close();
}
itit54 2009-12-13
  • 打赏
  • 举报
回复
up
追寻风的自由 2009-12-13
  • 打赏
  • 举报
回复
提高效率不会,不过要小心SQL注入
king198866 2009-12-13
  • 打赏
  • 举报
回复
不会提高效率改写,帮顶

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧