.net 中登录页面ExecuteScalar,ExecuteReader ,SqlDataAdapter的区别

ExecuteScalar()操作后则会返回一个首行首列的数据

            #region 登录ExecuteScalar
            //连接数据库
            string sql = "Data Source=WIN-SVM0RQ029SM;Initial Catalog=master;Integrated Security=True";
            private static string Consql = ConfigurationManager.ConnectionStrings["masterConnectionString"].ConnectionString;
            string user = txtuser.Text.Trim();
            string pwd = txtpwd.Text;
            //string consql = string.Format("select * from [User] where UserName='{0}' and Password='{1}'", user, pwd);
            //SQL语句
            string sql = "select *from [User] where[UserName] = @UserName and[Password] = @Password";
            SqlParameter[] parm = {
               new SqlParameter( "@UserName",user),
                new SqlParameter( "@Password" , pwd)
            };
            //Connection开启程序数据库之间的链接
            using (SqlConnection con = new SqlConnection(Consql))
            {
               //DataAdapter数据源以及DateSet之间执行数据传输的工作
               using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.AddRange(parm);
                    //打开连接
                    con.Open();
            //执行操作
            int result = Convert.ToInt32(com.ExecuteScalar());
            if (result>0)
            {
                Session["name"]= txtuser.Text;
                Response.Redirect("开票界面.aspx");
            }
            else
            {
                Response.Write("<script>alert('密码或用户名不正确')</script>");
                txtuser.Text = "";
                txtpwd.Text = "";
            } 

ExecuteReader() 操作后则返回ExecuteReader对象一次一笔向下循序的读取数据库中的数据

        //连接数据库
        //string sql = "Data Source=WIN-SVM0RQ029SM;Initial Catalog=master;Integrated Security=True";
        private static string Consql = ConfigurationManager.ConnectionStrings["masterConnectionString"].ConnectionString;
        string acc = txtuser.Text.Trim();
        string pwd = txtpwd.Text;
        //string consql = string.Format("select * from [User] where UserName='{0}' and Password='{1}'", user, pwd);
        //SQL语句 参数化查询
        string sql = "select * from [User] where[Account] = @Account and[Password] = @Password";
        SqlParameter[] parm = {
               new SqlParameter( "@Account",acc),
                 new SqlParameter( "@Password" , pwd)
            };
            //Connection开启程序数据库之间的链接
            using (SqlConnection con = new SqlConnection(Consql))
            {
                //DataAdapter数据源以及DateSet之间执行数据传输的工作
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.AddRange(parm);
                    //打开连接
                    con.Open();
                    //执行操作
                    //SqlDataReader连线式数据库
                    using (SqlDataReader reader = com.ExecuteReader())
                    {
                        //如果游标有数据即可登陆成功
                        if (reader.HasRows)
                        {
                            //游标前进一行拿到登陆数据
                            if (reader.Read())
                            {
                                //Session["name"] = txtuser.Text;
                                //索引获取username的值
                                //string username = reader.GetString(1);
                                // Session["name"] = name;
                                //按照名字直接获取值
                                string username = reader["UserName"].ToString();
                                //将获取得值传给Session
                                Session["name"] = username;
                                Response.Redirect("开票界面.aspx");
                            }
                        }
                        else
                        {
                            Response.Write("<script>alert('密码或用户名不正确')</script>");
                            txtuser.Text = "";
                            txtpwd.Text = "";
                        }
                    }

                }
            } 

SqlDataAdapter()主要是在数据库和DataSet执行数据传输,可以透过Command对象下达命令

 
       string acc = txtuser.Text.Trim();
string pwd = txtpwd.Text; //string consql = string.Format("select * from [User] where UserName='{0}' and Password='{1}'", user, pwd); //SQL语句 参数化查询 string sql = "select * from [User] where[Account] = @Account and[Password] = @Password"; SqlParameter[] parm = { new SqlParameter( "@Account",acc), new SqlParameter( "@Password" , pwd) }; //创建SqlDataAdapter适配器 using (SqlDataAdapter sda = new SqlDataAdapter(sql, Consql)) { //取出SqlDataAdapter的值 sda.SelectCommand.Parameters.AddRange(parm); //创建DataTable表 DataTable dt = new DataTable(); //将数据填充到表单中 sda.Fill(dt); //如果表单数据长度大于1 即登陆成功 if (dt.Rows.Count > 0) { //获取表单的第一条数据 DataRow dr = dt.Rows[0]; string username = dr["UserName"].ToString(); //将获取得值传给Session Session["name"] = username; Response.Redirect("开票界面.aspx"); } else { Response.Write("<script>alert('密码或用户名不正确')</script>"); txtuser.Text = ""; txtpwd.Text = ""; } } }


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值