登录Sql Server及参数

用户登录:

如图,建立一个登录窗体

连接SQLServer;

利用SqlCommand类的构造方法创建SqlCommand对象用于执行具体的SQL语句,如修改、更新、删除等。步骤如下:

1、创建SqlCommand对象:

SqlCommand sqlcommand=new SqlCommand();

2、将sqlcommand.Connection连上已创建的sqlconnection:

sqlcommand.Connection = sqlConnection; 

3、 定义SQL语句,指定SQL命令的命令文本;命令文本由字符串拼接而成:

sqlCommand.CommandText =                                                                          ​"SELECT COUNT(1) FROM tb_User"

               + " WHERE No='" + this.txb_UserNo.Text.Trim() + "'"                      

               + " AND Password=HASHBYTES('MD5','" + this.txb_Password.Text.Trim() + "');";

" + this.txb_UserNo.Text.Trim() + "是将文本框的文本清除首尾的空格后,拼接至命令文本中;  ‘’ 因为文本内容为字符类型,因而要加上单引号。

4、 采用SqlConnection的ExecuteScalar方法来表明用户名和密码是否正确。
ExecuteScalr:执行查询并返回结果中第一行第一列的指,其值为object类型。
打开连接,并定义一个整型变量rowCount,来存放object类型强制转换的值。
int rowCount = (int)sqlCommand.ExecuteScalar();  
如果rowCount=1,则登录成功,若为0,则不存在该用户,登录失败。
整合代码如下:
参数:
"SELECT COUNT(1) FROM tb_User"
               + " WHERE No='" + this.txb_UserNo.Text.Trim() + "'"                      
               + " AND Password=HASHBYTES('MD5','" + this.txb_Password.Text.Trim() + "');";
密码有可能被篡改。
使用参数可以解决该问题,将SQL语句改为:
"SELECT COUNT(1) FROM tb_User WHERE No=@No AND Password=HASHBYTES('MD5',@Password);";
注:指定SQL命令的命令文本,命令文本包含参数;
sqlCommand.Parameters.AddWithValue("@No", this.txb_UserNo.Text.Trim());                     
sqlCommand.Parameters.AddWithValue("@Password", this.txb_Password.Text.Trim());
注:向SQL命令的参数集合添加参数的名称、值; sqlCommand.Parameters["@Password"].SqlDbType = SqlDbType.VarChar;    
注:将密码参数的类型设为变长字符串;                

转载于:https://www.cnblogs.com/yyyz516/p/7659002.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值