SqlDataSource控件就像数据访问层,你调用相关方法就可。
数据库连接字符串,sql语句是最基本的。
sql语句看做一个函数的话,要参数。
参数来源太多了,来自其它控件,窗体,用户设置文件,查询字符串(就是url?后面的东西),会话,Cookie,当然可以自己编写代码作为参数。
SqlDataSource控件的事件,很好用。查询前,插入前,更新前,什么前,都可以验证下参数的数据格式对不对。查询后,插入后,更新后,什么后,都可以提示用户完成该功能了,多少东西受影响。
当然,你还可以捕捉SqlDataSource控件运行时的相关错误,包括sql语句的错误。
你看插入前的事件:
1 protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e)
2 {
3 e.Command.Parameters.Add(new SqlParameter("@face", Convert.ToDecimal(Request.Form["face"].ToString())));
4 e.Command.Parameters.Add(new SqlParameter("@posttime", System.DateTime.Now.ToString()));
5 }
2 {
3 e.Command.Parameters.Add(new SqlParameter("@face", Convert.ToDecimal(Request.Form["face"].ToString())));
4 e.Command.Parameters.Add(new SqlParameter("@posttime", System.DateTime.Now.ToString()));
5 }
用来设置sql语句参数。
你看查询后的事件:
1 protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
2 {
3 if (e.AffectedRows > 0)
4 {
5 Response.Redirect("http://163.com");
6 }
7 else
8 {
9 Response.Write("密码错误");
10 }
11 }
2 {
3 if (e.AffectedRows > 0)
4 {
5 Response.Redirect("http://163.com");
6 }
7 else
8 {
9 Response.Write("密码错误");
10 }
11 }
用来判断用户密码正确否。
在事件中,调用SqlDataSource1的查询方法呢:
1 protected void Button1_Click(object sender, EventArgs e)
2 {
3 this.SqlDataSource1.Select(DataSourceSelectArguments.Empty);
4 }
2 {
3 this.SqlDataSource1.Select(DataSourceSelectArguments.Empty);
4 }