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

SqlCommand的Parameters属性

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

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连接介绍。

ADO连接介绍。

using System; using System.Collections.Generic; using System.Data.SqlClient; // 使用 SqlConnection  要引用这个。 us...

ADO数据库连接SqlConnection

ADO数据库连接SqlConnection

数据库应用程序的开发流程一般主要分为以下几个步骤:创建数据库使用Connection对象连接数据库使用Command对象对数据源执行SQL命令并返回数据使用DataReader和DataSet对象读取和处理数据源的数据Connection对象是连接程序和数据库的“桥梁”,要存取数据源中的数据,首先要...

SqlCommand的ExecuteScalar方法

SqlCommand的ExecuteScalar方法

用于执行查询语句,并返回单一值或者结果集中的第一条记录的第一个字段的值。该方法适合只有一个结果的查询,例如使用SUM、AVG、Max、Min等函数的SQL语句返回值是object类型。查找 用户 表中的总条数:       &nb...

SqlCommand的ExecuteReader方法

SqlCommand的ExecuteReader方法

用于执行查询语句,并返回一个DataReader类型的行集合。解释1:将SQL语句发送到指定连接 生成一个SqlDataReader对象解释2:当ExecuteReader()执行后返回一个SqlDataReader对象两种解释实际上都在说明些方法就是给SqlDataReader对象一个可以访问查询...

发表评论

访客

看不清,换一张

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