资源在这里 :github源文件参考
先看一下截图
支持的功能:
- 密码显示成点点
- 登录成功的提示
- 登录失败的提示
- 注册成功的提示
- 不能注册已经在数据库里面的用户ID
我在这里看了很多这个人的教程:walking橙子 ,但是里面有的东西我不能用,messagebox.show() 就不行。我也不是很懂(搜索也没有搜到,不知道怎么使用messagebox的我只能找一种替换的弹窗方式(当然也是来自百度)使用起来也很简单,关键是能用。
推荐大家去看一下,我这里不打算写重复的东西,在源文件里面我有很多的注释,相信可以方便下载了源文件的人理解一点。
具体步骤
1.用SSMS建立一个数据库,大概这样
2.做好一个网页,大概和头图那个类似就行了(看着比较经典但是外观这里不是重点)
这里说一下密码样式,textmode 属性
↑TextMode="Password"是新加入的。 这个设置和现代浏览器很搭,还会有一个小眼睛让你选择显示密码,默认是点点(edge)
3.拖一个下面这个控件,并且链接好数据库文件/服务器。(这个也许比较困难,但是这个网上有很多的教程,还有各种问题的处理方法)
4.开始打关于那两个按钮的代码
登录按钮:
先打一个SqlCommand之类的,会划错误提示,使用vs的自动补齐功能,它可以帮助你补上using的东西
- 确认用户没有空着框子
- 和数据库做对比
-
sqlconnection.open() 这里的链接字符串可以在这边找到(看图 ↓) -
sqlcommand.excute() (并传递给reader)注意new sqlcommand()里面的参数 -
reader.read() -
判断reader.hasrows 来看看是否有这一个用户和密码是否正确。并且弹窗 -
关于用户输错了什么的判断(个人感觉这个很重要)并且弹窗 -
- protected void Button1_Click(object sender, EventArgs e)
- {
- if (TextBox1.Text == "")
- {
- Response.Write("<script>window.alert('没有输入用户名');</script>");
- return;
- }
-
- else if(TextBox2.Text == "")
- {
- Response.Write("<script>window.alert('没有输入密码');</script>");
- return;
- }
-
- SqlConnection conn = new SqlConnection("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=login_webhw;Integrated Security=True");
- // 这句话从sqldatasource控件里面复制一个出来。
- conn.Open();
- SqlCommand cmd = new SqlCommand("SELECT *FROM logindb where userID = '" + TextBox1.Text.Trim() + "' and userPWD = '" + TextBox2.Text.Trim() + "'",conn);
- // 这句话创建一个指令
- SqlDataReader sdr = cmd.ExecuteReader();//指令传给reader
- Label1.Text=cmd.CommandText.ToString();//查看一下自己的查询语句对不对,一会注释掉
- // 这句执行它
- sdr.Read();
- if (sdr.HasRows)
- Response.Write("<script>window.alert('登录成功');</script>");
- else//最讨厌的就是一个网页告诉我用户名或者密码错误,但是不告诉我到底是哪个
- {
- sdr.Close();//这里本来不知道要写的,但是下面再次调用出现了小问题,就加上。最好用完就关掉
- cmd.CommandText = "SELECT *FROM logindb where userID = '" + TextBox1.Text.Trim() +"'";
- sdr = cmd.ExecuteReader();//指令传给reader
- if (sdr.HasRows)
- Response.Write("<script>window.alert('密码错误');</script>");
- else
- Response.Write("<script>window.alert('用户名不存在');</script>");
- sdr.Close();
- }
-
- conn.Close();
- }
复制代码
注册按钮:
- 主要的区别就在于使用的是插入的sql语句
- trim()函数是照着上一个帖子的写的,感觉用处不大。
我在里面放了一个浅色的label用来看看自己的语句有没有错误,因为一堆的引号还有加号真的很花眼。 - protected void Button2_Click(object sender, EventArgs e)//注册按钮
- {
- if (TextBox1.Text == "")
- {
- Response.Write("<script>window.alert('没有输入用户名');</script>");
- return;
- }
- else if (TextBox2.Text == "")
- {
- Response.Write("<script>window.alert('没有输入密码');</script>");
- return;
- }
- SqlConnection conn = new SqlConnection("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=login_webhw;Integrated Security=True");
- conn.Open();
- //先检查有没有已经存在了,这个用户
- SqlCommand cmd = new SqlCommand("SELECT *FROM logindb where userID = '" + TextBox1.Text.Trim() + "'", conn);
- SqlDataReader sdr = cmd.ExecuteReader();
- Label1.Text = cmd.CommandText.ToString();//查看一下自己的查询语句对不对,一会注释掉
- sdr.Read();
- if (sdr.HasRows)
- Response.Write("<script>window.alert('用户名已经存在,不可以重复注册');</script>");
- else//开始写注册的东东
- {
- sdr.Close();
- cmd.CommandText = "insert into logindb (userID,userPWD) values ('"+TextBox1.Text+"','"+TextBox2.Text+"')";
- string rows_effedted = cmd.ExecuteNonQuery().ToString();
- Label1.Text = rows_effedted;
- conn.Close();
- conn.Dispose();//释放conn所有的资源。
- Response.Write("<script>window.alert('注册成功,可以登录了');</script>");
- }
- }
复制代码
这样就写完了,我还是喜欢玩css的东西,很酷诶!
但是学校叫我做注册和登录,重点在于链接数据库。
谢谢你的阅读。
资源在这里 :github源文件参考
我的个blog : https://kasusa.github.io 可以去博客里和我email联系。乐于回答相关的小疑问。
来源:https://blog.csdn.net/qq_41424132/article/details/89790024 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |