ASP.NET学习笔记(1)——GridView基本操作,登录操作

第一讲主要是基本介绍了ASP.NET的一些概况。

运行环境:Microsoft Visual Studio 2005

1、基本的数据绑定:

在VS2005中创建一个ASP.NET网站后,使用GridView控件和SqlDataSource控件。在SqlDataSource控件智能标记中选择配置数据源,根据具体情况配置相应的数据源,VS2005和VS2003相比,改进了很多,例如简单的数据绑定基本不用写代码,而且还可以进行分页和排序等处理。 

GridView的智能标记中选择相应的数据源,可以选择启用分页和启用排序的功能,还可以选择编辑列,对每一列做进一步处理。或者在GirdView属性栏中的AllowPaging的属性改为true实现分页,而PageSize属性则为每页显示的数量,AllowSorting 属性选择true则实现排序的功能。

2、三种不同方式的登录功能

<1>普通登录:

  SqlConnection con = new SqlConnection(@"server=localhost;uid=sa;database=pubs");
        string sql = "select count(*) from users where username='" + this.TextBox1.Text + "' and userpass='" + this.TextBox2.Text + "'";
        SqlCommand cmd = new SqlCommand(sql,con);
        con.Open();
        try
        {
            int result = (int)cmd.ExecuteScalar();
            if (result==0)
            {
                Response.Write("Fail");
              
            }
            else
            {
                Response.Write(sql);
            }
        }
        catch (Exception ex)
        {
        }
        con.Close();

普通登录安全性差,容易受SQL 注入式攻击.....

 <2>参数化登录:

        SqlConnection con = new SqlConnection(@"server=localhost;uid=sa;database=pubs");
        string sql = "select count(*) from users where username=@username and userpass=@userpass";
        SqlCommand cmd = new SqlCommand(sql, con);
        con.Open();
        SqlParameter[] pars = new SqlParameter[2];
        pars[0] = new SqlParameter("@username", SqlDbType.VarChar, 20);
        pars[0].Value = this.TextBox1.Text;

        pars[1] = new SqlParameter("@userpass", SqlDbType.VarChar, 20);
        pars[1].Value = this.TextBox2.Text;

        foreach (SqlParameter par in pars)
        {
            cmd.Parameters.Add(par);
        }

        try
        {
            int result = (int)cmd.ExecuteScalar();
            if (result == 0)
            {
                Response.Write("Fail");

            }
            else
            {
                Response.Write(sql);
            }
        }
        catch (Exception ex)
        {
        }
        con.Close();

<3>存储过程登录:

        SqlConnection con = new SqlConnection(@"server=localhost;uid=sa;database=pubs");
        SqlCommand cmd = new SqlCommand("Userselect", con);   //"Userselect"为存储过程名称
        cmd.CommandType = CommandType.StoredProcedure;
        con.Open();

        SqlParameter[] pars = new SqlParameter[2];                            //存储过程中的两个参数
        pars[0] = new SqlParameter("@username", SqlDbType.VarChar, 20);
        pars[0].Value = this.TextBox1.Text;

        pars[1] = new SqlParameter("@userpass", SqlDbType.VarChar, 20);
        pars[1].Value = this.TextBox2.Text;

        foreach (SqlParameter par in pars)
        {
            cmd.Parameters.Add(par);
        }

        try
        {
            int result = (int)cmd.ExecuteScalar();
            if (result == 0)
            {
                Response.Write("Fail");

            }
            else
            {
                Response.Write("OK");
            }
        }
        catch (Exception ex)
        {
        }
        con.Close();

存储过程登录安全性高,而且采用存储过程可实现批命令的执行

附:存储过程定义

CREATE PROCEDURE Userselect
@username varchar(20),
@userpass varchar(20)
as
select count(*) from users where username=@username and userpass=@userpass
GO

Tag标签: asp.net

posted on 2008-07-25 18:37 Little Kid 阅读(2) 评论(0)  编辑 收藏


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-07-25 18:41 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接:
 




<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

与我联系

搜索

 

常用链接

留言簿

我参加的小组

我的标签

随笔档案

ASP.NET

最新评论