三种操作数据库的途径
2008-02-23 07:40:36来源:互联网 阅读 ()
操作数据库能够分这么三种,第一种,直接写硬SQL代码,不要参数,第二种,直接写硬代码,要参数,第三种,调用存储过程。
我们以一个登录模块为例,现在页面有两文本框,一按纽,实现验证用户名密码的功能。第一种方法主要代码如下:
SqlConnection conn =new SqlConnection ("server=;database=news2;uid=sa;pwd=");
|
第二种途径
SqlConnection conn =new SqlConnection("server=;database=news;uid=sa;pwd="); conn.Open();//打开数据库 SqlCommand cmd=new SqlCommand();//建立命令对象 cmd.CommandText="select count(*)from users where name=@name and pwd=@pwd"; cmd.Connection=conn;//配置连接 SqlParameter p= new SqlParameter("@name",SqlDbType.Char,10); //定义参数 p.Value=this.TextBox1.Text; cmd.Parameters.Add(p);//添加参数到集合 p= new SqlParameter("@pwd",SqlDbType.Char,10); p.Value=this.TextBox2.Text; cmd.Parameters.Add(p); int i=(int)cmd.ExecuteScalar(); if(i==1) { Response.Redirect("add.aspx");} else { Label1.Text="error!" } |
第三种途径
SqlConnection conn =new SqlConnection("server=;database=news;uid=sa;pwd="); conn.Open();//打开数据库 SqlCommand cmd=new SqlCommand();//建立命令对象 cmd.CommandText=" checkLogin";//配置命令文本 cmd.CommandType=CommandType.StoredProcedure; //配置文本类型 cmd.Connection=conn;//配置连接 SqlParameter p= new SqlParameter("@name",SqlDbType.Char,10); //定义参数 p.Value=this.TextBox1.Text; cmd.Parameters.Add(p);//添加参数到集合 p= new SqlParameter("@pwd",SqlDbType.Char,10); p.Value=this.TextBox2.Text; cmd.Parameters.Add(p); int i=(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代码来,能够由数据库管理员或工程师来写,这样,一方面减轻程式员的工作,另一方面也能够使数据库和应用程式保持单独,这样有利于系统的移植和维护。
当然第三种是推荐使用的,好处呢!就是前面所写的。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 简介影响mysqld安全的四个选项
下一篇: 提高MySQL查询效率的三个技巧
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash