当前位置:首页 > 数据库 > ADO > 正文内容

SqlCommand的Parameters属性

小道6年前 (2018-08-28)ADO4319

SqlCommand的Parameters属性:获得与该命令关联的参数集合

            using (SqlConnection conn =new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDBFilename=|DataDirectory|\Database1.mdf;integrated Security=True;User Instance=false"))
            {
                conn.Open();//打开数据库
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    //错误写法开始——
                    //cmd.CommandText = "select count(*) from 用户 where 帐号='" + yhm + "'"+"and 密码='" + mm + "'";  //错误示例。如果密码输出: 1' or '1' = '1  可以登录成功。造成SQL注入漏洞攻击
                    //错误写法结束——

                    //正确写法开始——
                    cmd.CommandText = "select count(*) from 用户 where 帐号=@UN and 密码=@P";
                    cmd.Parameters.Add(new SqlParameter("UN",yhm));
                    cmd.Parameters.Add(new SqlParameter("P",mm));
                    //正确写法结束——

                    int i = Convert.ToInt32(cmd.ExecuteScalar());
                    if (i > 0)
                    {
                        Console.WriteLine("登录成功!");
                    }
                    else
                    {
                        Console.WriteLine("用户名或密码错误!");
                    }
                }
            }

错误写法输出结果:

image.png

错误的写法 获得的是

image.png

where 条件就变成了 帐号=admin 并且 密码=1 或者 1=1  这样就为真了。那么就返回一个大于0的数了。就登录成功了。


正确写法输出结果:

image.pngimage.png


扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/84.html

分享给朋友:

“SqlCommand的Parameters属性” 的相关文章

ADO执行数据库操作命令对象SqlCommand

ADO执行数据库操作命令对象SqlCommand

使用Connection对象成功创建数据库连接后,接下来就可以使用Command对象对数据源执行查询、添加、删除和修改等各种SQL命令了。SqlCommand对象用来对SQL Server数据库执行操作命令。SqlCommand属性属性说明CommandText获取或设置要执行的SQL语句或存储过程...

SqlCommand的ExecuteNonQuery方法

SqlCommand的ExecuteNonQuery方法

ExecuteNonQuery:用于执行SQL语句,并返回SQL语句所影响的行数。该方法一般用于执行insert、delete、update等语句。using System; using System.Collections.Generic; using Syste...

使用ADO连接数据库:判断用户输入的帐号和密码是否正确

使用ADO连接数据库:判断用户输入的帐号和密码是否正确

使用ADO连接数据库:判断用户输入的帐号和密码是否正确用户表信息:使用连接查找数据库数据进行登录            Console.WriteLine("请输入用户名...

基于数据库登录判断。

基于数据库登录判断。

基于MSSQL数据库登录判断,如果密码连续输出3次,则提示用户3分钟后重试。数据库:Program:using System; using System.Collections.Generic; using System.Linq; using Syst...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。