【C#】强类型DataSet实现登录次数限制
net小伙曾在博文中写过一篇文章:【C#】登陆次数限制;那个程序的代码长,如今net小伙又学了一个新方法,可以让此程序的代码缩短很多,而且很清晰;
首先介绍什么是强类型DataSet,即返回的数据是确定的数据类型的一个集合。弱类型DataSet返回的是object类型的数据,需要通过转换才能使用返回的数据。若数据源中的数据对象从来都不变,或者你从来就不改数据源里的数据对象,就可以用强类型的DataSet;若使用的是生成式的数据库,就使用弱类型DataSet。
怎么创建强类型DataSet。
①:添加新项-->创建一个数据集;
②:视图-->服务资源管理器,连接项目中所需要的数据库,然后把需要的数据库表拖拽到数据集中。
③:保存,生成;
怎么在强类型DataSet中DIY数据库代码。
在数据集中右击-->添加查询,然后按照步骤就OK了;
解决了上面的问题,现在就开始实现功能了。
首先建立数据库,数据库中的字段: id 主键,自增; UserName 用户名; PassWord 用户密码; ErrorTimes错误次数;
然后创建此表的数据集,
//通过用户名查找数据
添加查询:SELECT id, UserName, PassWord, ErrorTimes FROM dbo.T_User where UserName=@username 方法名称:GetDataByusername1;
//实现错误次数自动增加
添加查询,选择修改:UPDATE [dbo].[T_User] SET ErrorTimes=ErrorTimes+1 WHERE (id = @id) 方法名称:incerrortimes;
//修改错误次数为0
添加查询,选择修改:UPDATE [dbo].[T_User] SET ErrorTimes=0 WHERE (id = @id) 方法名称:reseterrortimes;
这次net小伙用的仍旧是winform,两个textbox,一个button;双击按钮编写按钮事件:
private void button1_Click(object sender, EventArgs e) { T_UserTableAdapter adapter = new T_UserTableAdapter(); UsingDataSet.text.T_UserDataTable users = adapter.GetDataByusername1(textBox1.Text); //得到返回的数据 if (users.Count <= 0) { MessageBox.Show("用户名错误!"); } else { UsingDataSet.text.T_UserRow userrow = users[0]; //得到返回数据的第一行 if (userrow.ErrorTimes > 3) //判断登录次数 { MessageBox.Show("错误次数超过三,不能登录!"); return; } if (userrow.PassWord == textBox2.Text) //判断登录密码 { MessageBox.Show("登录成功!"); adapter.reseterrortimes(userrow.id); //通过强类型DataSet重置错误次数 } else { MessageBox.Show("密码错误!"); adapter.incerrortimes(userrow.id); //通过强类型DataSet把错误次数增加一 } }
点击运行。