登录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数据库新建拥有部分查看操作权限的用户