今天开始写自己的第一篇博客,今天自己想制作一个登录界面。
2020-01-18
由于之前写的版本问题比较多,所以最近我单独做了一个简单的示例,大家可自行下载查看。此版本在实现上比之前规范,并添加了一些该有的验证。
链接:https://download.csdn.net/download/qq_38830964/14527281
软件:vs2015 、 sql serve 2017
1、首先打开vs先自己制作一个windows窗口应用程序,如下图是笔者自己制作的界面:
2、此处若有用户名密码则直接输入点击登录,若无则需要点击注册按钮弹出注册窗口。首先我们再创建一个应用窗口:
3、将注册按钮与注册界面相连:(此处效果为点击注册按钮,打开注册界面,隐藏登录界面) private void button2_Click(object sender, EventArgs e) { Register f2 = new Register ();//Register为注册界面的name this.Hide(); f2.Show(); }
4、同理,当注册完成后,我们应点击确定按钮,回到登录界面。(方法同上)
5、用户名以及密码的判定问题:
方法一:将用户名和密码写入本地txt文件中,在注册的时候写入文件,登录的时候从文件中读出信息进行对比,如果文件中有匹配的信息,则可登录成功,若无,则不允许登录;
方法二:将vs与sql serve数据库相连,将用户名与密码存入数据库中。(两种方法本质思想相同,笔者为了熟悉数据库与vs的联系,采用的是这种方法)
在菜单栏--工具选项中,有连接到数据库选项,输入自己的服务器名以及自己建的数据库名即可连接。
6、创建数据库:在sql serve中创建自己的数据库,在数据库中新建立表格用于存储用户名和密码,可以简单建立一个表,包含两列,
CREATE TABLE user ( username nvarchar(20), password varchar(20) )
7、表建好以后即可在注册界面写入代码将从文本框中获取的用户名及密码写入数据库:
if (textBox2.Text == textBox3.Text)
{
string connectionStr = "Data Source=(服务器名);Initial Catalog=(数据库名);Persist Security Info=True;User ID=(数据库登录账号);Password=(密码); //此处用的调用数据库的方法为sql serve身份验证,若是windows本地验证,则需另外的引用方法
//创建连接对象
myConnection = new SqlConnection(connectionStr);
//测试是否连接成功
// SqlConnection mycon = new SqlConnection(connectionStr); //定义SqlConnection对象实例并连接数据库
try
{
myConnection.Open();//打开数据库
}
catch
{
MessageBox.Show("数据库连接错误", "错误提示");
}
finally
{
myConnection.Close();//关闭数据库
}
username = textBox1.Text.ToString(); //获取用户名
password = textBox2.Text.ToString(); //获取密码
string myinsert = "insert into user(username,password) select '"+username+"','" +password+ "'";
SqlCommand mycom = new SqlCommand(myinsert, myConnection); //定义对象并连接数据库
myConnection.Open();//打开数据库
mycom.ExecuteNonQuery(); //执行插入语句
myConnection.Close(); //关闭对象并释放所占内存空间
// myConnection.Dispose();
//此处应作判断是否注册成功,此处简略不写
MessageBox.Show("注册成功,请前往登录界面登录!") ;
Test f2 = new Test();
this.Close();
f2.Show();
}
else
{
MessageBox.Show("两次密码输入不一致,请重新输入!");
}
}`
8、所需数据存入数据库后,即可在登录界面登录,登录时需要从数据库中对比输入的用户名密码,若有匹配,则允许登录,反之,不行。代码如下:
string username = this.textBox1.Text;
string password = this.textBox2.Text;
if (username.Equals("") || password.Equals(""))//用户名或密码为空
{
MessageBox.Show("用户名或密码不能为空");
}
else//用户名或密码不为空
{
string connectionString = "Data Source=服务器名称;Initial Catalog=load;Persist Security Info=True;User ID=sa;Password=此处输入密码";
myConnection = new SqlConnection(connectionString);
//测试连接
myConnection.Open(); //打开数据库
string sql = "Select top 1 from user where username='" + username + "' and password='"+ password + "'";//查找用户sql语句
SqlCommand cmd = new SqlCommand(sql, myConnection);//定义对象并连接数据库
cmd.CommandType = CommandType.Text;
SqlDataReader sdr;
sdr = cmd.ExecuteReader();
if (sdr.Read()) //从结果中找到
{
MainForm f3 = new MainForm ();//MainForm为应用主界面
this.Hide();
f3.Show();
}
else
{
MessageBox.Show("用户名或密码错误", "提示");
return;
}
myConnection.Close();//关闭数据库
}`
9、用户名密码匹配之后即可允许登录到应用界面。
参考文章:
https://blog.csdn.net/weixin_41259130/article/details/81740618