登录Sql Server及参数
Posted 奔跑吧菜鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登录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 [email protected] 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;
注:将密码参数的类型设为变长字符串;
以上是关于登录Sql Server及参数的主要内容,如果未能解决你的问题,请参考以下文章
Sql Server R8 密码问题及5102错误
SQL Server之 ADO增删查改 登录demo 带参数的sql语句 插入自动返回行号
SQL Server由于登录失败无法启动服务
sql server无法打开登录所请求的数据库 登录失败
SQL Server里那些我们应该知道的系统存储过程
SQL Server数据库新建拥有部分查看操作权限的用户