三种操作数据库的途径
来源: 阅读:786 次 日期:2015-02-12 11:57:55
温馨提示: 小编为您整理了“三种操作数据库的途径”,方便广大网友查阅!

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

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

SqlConnection conn =new SqlConnection

("server=;database=news2;uid=sa;pwd=");

conn.Open();

SqlCommand cmd=new SqlCommand();

cmd.CommandText="select count(*)from users

where name='"+this.TextBox1.Text+"'and pwd='"+this.TextBox2.Text+"'";cmd.Connection=conn;int i=(int)cmd.ExecuteScalar();Response.Write(i.ToString());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="select count(*)from users where and ";

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

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

更多信息请查看IT技术专栏

更多信息请查看数据库
手机网站地址:三种操作数据库的途径
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map