
已解决问题
谷歌caoshaobo9394用户在2016.05.01提交了关于“迈瑞宝三种操作**库的途径”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-03-01T16:21:35。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零 !
详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零 !
操作数
我们以一个登录模块为例,现在页面有两文本框,一
SqlConnectioncon
("server=;dat
***.O
SqlCommandcmd=newSqlComman
cmd.CommandText="selectcount(*)fromu
wherename='"+this.TextBox1.Text+"'
第二种途径
SqlConnectionconn=newSqlConnection("server=;database=news;uid=
***.Open();//打开**库
SqlCommandcmd=newSqlCo
cmd.CommandText
cm
SqlPara
//定义参数
p.Value=this.TextBox1.Te
cmd.
p=newSqlParameter("@p
p.V
inti=(int)cm
if(i==1
{
Resp
else
{
Label1.Text
第三种途径
SqlConnectionconn=newSqlConnection("server=;database=news;uid=sa;pwd=");
***.Open();//打开**库
SqlCommandcmd=newSqlCommand();//建立命令对象
cmd.CommandText="checkLogin";//设置命令文本
cmd.CommandType=CommandType.StoredProce**re;
//设置文本类型
cmd.Connection=conn;//设置连接
SqlParameterp=newSqlParameter("@name",SqlDbType.Char,10);
//定义参数
p.Value=this.TextBox1.Text;
cmd.Parameters.Add(p);//添加参数到集合
p=newSqlParameter("@pwd",SqlDbType.Char,10);
p.Value=this.TextBox2.Text;
cmd.Parameters.Add(p);
inti=(int)cmd.ExecuteScalar();
if(i==1)
{
Response.Redirect("add.aspx");}
else
{
Label1.Text="error!"
}
接下来对这三种方法做分析:
第一方法不能防范SQL注入式方式攻击,比如在第一个文本框输入asd'or's'='s第二个同样输入asd'or's'='s,可以发现成功通过验。
第二种直接写硬SQL代码,事实上不是每个人都能写出优良的SQL代码来,可以由**库管理员或工程师来写,这样,一方面减轻程序员的工作,另一方面也可以使**库与应用程序保持独立,这样有利于系统的移植与维护。
当然第三种是推荐使用的,好处呢!就是前面所写的。