C#密码修改及验证
2016-08-02 15:30
603 查看
#region 将新密码更新到数据库中 private bool UpdataPwd() { bool flag = false;//更新的结果 DBHelper db = new DBHelper(); string pass = this.textBox2.Text.Trim(); try { db.OpenConnection();//打开数据库 //SQL语句 StringBuilder sb = new StringBuilder(); sb.AppendFormat("UPDATE [Admin] SET [PassWord] = '{0}' WHERE [UserName] ='{1}'", pass, this.admin.Loginname); //创建SQL命令 SqlCommand comm = new SqlCommand(sb.ToString(), db.Connection); //执行SQL操作 int temp = comm.ExecuteNonQuery();//返回值大于0,修改成功 if (temp == 1) { flag = true; } } catch (Exception) { flag = false; } finally { db.CloseConnection();//关闭数据库 } return flag; } #endregion #region 确认按钮事件 public void button1_Click(object sender, EventArgs e) { bool flag = false;//更新结果 //检测密码是否与登录密码一致并且检测两次输入密码是否一致 if (Checkinput() && CheckInput()) { flag = UpdataPwd(); if (flag==true) { MessageBox.Show("修改成功", "系统提示", MessageBoxButtons.OK); this.Close(); } else { MessageBox.Show("修改失败","系统提示",MessageBoxButtons.OK); } } } #endregion
ExecuteNonQuery方法
ExecuteNonQuery方法主要用来更新数据。通常使用它来执行Update、Insert和Delete语句。该方法返回值意义如下: 对于Update、Insert和Delete语句,返回值为该命令所影响的行数。 对于所有其他类型的语句,返回值为-1。Command对象通过ExecuteNonQuery方法更新数据库的过程非常简单,需要进行的步骤如下:(1)创建数据库连接。(2)创建Command对象,并指定一个SQL Insert、Update、Delete查询或存储过程。(3)把Command对象依附到数据库连接上。(4)调用ExecuteNonQuery方法。(5)关闭连接。下面依次看一看更新、添加和删除操作。更新记录下面的代码显示了一个简单的数据库更新操作,其作用是修改学号为“20013150“的学生信息:string updateQuery="Update studentInfo set sName=‘小李‘"+"Where ID=‘200131500145‘";//新建连接SqlConnection conn=new SqlConnection();conn.Connectionstring=connectionString;//新建命令对象SqlCommand cmd=new SqlCommand(updateQuery,conn);// 调用命令对象的ExecuteNonQuery方法conn.Open();int RecordsAffected=cmd. ExecuteNonQuery();conn.Close();代码本身非常简单。但需要注意的是ExecuteNonQuery方法的返回值,这个方法返回命令影响的记录数量。例如,如果命令是SQL UPDATE语句,则将返回被更新记录的数量。相似的,当执行INSERT命令时返回插入到数据库的记录的数量。如果期望命令更新记录,但是ExecuteNonQuery方法返回的值为0,则说明更新操作失败了。(1)字符串拼接方式也许读者已经注意到了在上面的代码中updateQuery是在程序中定义的,其操作固定在了程序中,用户无法和应用程序交互,而在实际中命令应该根据用户输入的信息进行处理,比如用户在文本框中输入了新的用户信息以后单击更新,然后程序将用户输入的数据更新到数据库。要达到这个目的,就必须依据用户输入的数据来构造命令。构造命令可以有多种形式。假设现在已经将用户输入的数据保存到了变量中:String userName="小李";String userId="200131500145";此时userName和user id变量分别保存了学生姓名和学号,命名可以通过如下拼接命令字符串的形式构造:string updateQuery="Update student Set sName=‘ "+username+" ‘ "+"WhereID=‘ "+user id+" ‘ "这种拼接字符串构造命令的方式是最直接最简单的,但也是最不安全的。可以采用参数化来实现相同的功能。(2)参数化方式SQL Server.NET数据提供程序和OLE DB.NET数据提供程序在指定参数时区别非常大,下面分别介绍。①在SQL Server .NET数据提供程序中指定参数SQL Server .NET数据提供程序支持指定的参数。当命令文本在指定具体命令时,必须指出哪一部分是在运行时进行设置的,也就是必须指出哪部分是参数。那些可变的部分即参数,它们都必须有一个@前缀。Update student set sName=@userName where ID=@userid这个命令中,@userName和@userid为参数,它们的值在运行时是可变的。当命令中带参数时,构造Command对象的方法和前面的并没有任何不同:string updateQuery="Update student Set sName=@username"+"Where ID=@userid" ;SqlConnection conn=new SqlConnection(connectionString);SqlCommand cmd=new SqlCommand(updateQuery, conn);现在就有了包含参数的Command对象。目前需要做的就是为命令中的每一个参数创建一个Parameter对象。SqlCommand类提供了一个Parameters集合属性,用以为命令保存所有的参数。通过调用Parameters集合的Add方法,在集合中添加一个新的参数。crud. Parameters.Add (" @userName", userName);cmd. Parameters.Add("@userid", userid);上面Add方法中的第一个参数为命令中的参数名,后面的userName则是用于定义的变量,保存了用户输入的信息。除此之外,可以用其他方法创建Parameter对象,然后添加到集合中。SqlParameter paramUserName= new SqlParameter("@userName",SqlDbType.NVarChar,50);paramUserName.Value=userName;cmd. Parameters.Add(paramUserName) ;上面的代码首先新建了一个SqlParameter对象,命名为paramUserName,该对象对应于命令中的@userName参数,在SqlParameter的构造函数中为参数指定了类型为SqlDbType.NVarChar,长度为50。接着为paramUserName指定了Value属性,表示在运行时将用这个值代替命令中的@userName。最后是调用Add方法将参数添加到命令的参数集合中,这一步很容易被初学者忽略,要格外注意。带参数的命令设置好以后可以和往常一样执行ExecuteNonQuery方法,这并没有任何不同。
<span style="padding: 0px; color: rgb(63, 63, 63); font-size: 18px; line-height: 30px; text-align: center;"></span>
相关文章推荐
- C# .NET注册、修改密码发送短信验证码
- 邮箱及密码的正则表达式验证(C#)
- C#.net(密码验证)(杨辉三角的输出)第一次上机实践内容
- C# 修改Administrator密码
- 如何修改SQL Server 2000身份验证模式和系统管理员及sa 密码
- C#修改window本地帐号密码
- 用ASP的安全验证来对windows 2000的管理者密码进行在线修改。
- C# 建立AD帐号,设置下次登录修改密码
- Ext JS 中实现自定义验证 密码修改 确认密码
- 修改SQL Server 2005 Express身份验证和sa密码
- DoNet用Ajax实现对修改密码时输入数据合法性的验证
- C#中实现密码的修改
- C#修改xp 密码
- asp.net 服务器端的验证控件——密码修改验证
- 如何修改SQL Server 2000身份验证模式和系统管理员Sa的登录密码
- 修改注册控件的密码验证等问题
- cvs 采用独立验证模式 添加用户 修改密码
- ASP.NET(C#)修改FTP密码
- 用C#设计一个简单的修改密码界面
- 创建本地用户、修改用户密码及将用户添加到用户组的代码(C#)