三种操作**库的途径

时间:2016.05.01 发布人:caoshaobo9394

三种操作**库的途径

已解决问题

谷歌caoshaobo9394用户在2016.05.01提交了关于“迈瑞宝三种操作**库的途径”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-03-01T16:21:35。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零 !

希望以下的回答,能够帮助你。

第1个回答

用户名:****shao  

  操作数据库可以分这么三种,第一种,直接写硬SQL代码,不要参银年院可曾顾川谈攻数,第二种,直接写硬代码,要参数,第三种,调用存储过程。

  我们以一个登录模块为例,现在页面有两文本框,一按纽,实现验用户名密码的功能。第一种方法主要代码如下:

  SqlConnectionconn=newSqlConnection

  ("server=;dat审己等导笑abase=news2;uid=sa;pwd=");

  ***.Open();

  SqlCommandcmd=newSqlComman来自d();

  cmd.CommandText="selectcount(*)fromu问答sers

  wherename='"+this.TextBox1.Text+"'班andpwd='"+t王计弱座his.TextBox2.Text+"'";cmd.Connection=conn;inti=(int)cmd.ExecuteScalar()边内继世井由乙应此;Response航雷质女.Write(i.ToString());if(i==1){Response.Redirect("add.aspx");}else{Label1.Text="error!"}

  第二种途径

  SqlConnectionconn=newSqlConnection("server=;database=news;uid=sa;pwd=");

  ***.Open();//打开**库

  SqlCommandcmd=newSqlCommand();//建立命令对象

  cmd.CommandText急率说验重格十特="selectcount(*)fromuserswhereand";

  cm青夫供棉d.Connection=conn;//设置连接

  SqlPara动汉台写meterp=newSqlParameter("@name",S杀看同达若著牛持孔qlDbType.Char,10);

  //定义参数

  p.Value=this.TextBox1.Te草损缩叫激济音司xt;

  cmd.反Parameters.Add(p);//添加参数走调差雨使唱对名曲到集合

  p=newSqlParameter("@p妒划wd",SqlDbType.Char,10);

  p.V院月足alue=this.TextBox2.Text;

  cmd.Parameters.Add(p);

  inti=(int)cmd.ExecuteScalar();

  if(i==1)

  {

  Response.Redirect("add.aspx");}

  else

  {

  Label1.Text罪地举富="error!"

 乱北生儿财信合 }

  第三种途径

  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代码来,可以由**库管理员或工程师来写,这样,一方面减轻程序员的工作,另一方面也可以使**库与应用程序保持独立,这样有利于系统的移植与维护。

  当然第三种是推荐使用的,好处呢!就是前面所写的。