【C#】通过点击事件与数据库进行交互数据(分析篇)

前言:本文主要以分析需求的角度去实现功能,侧重点是分析而不是代码的实现,所以本文中提供的代码较少,重在培养初学者的分析需求问题的意识。

实现目的:通过按钮事件,让前台数据跟数据库进行数据交互。

模块需求:1.绘制登入页面和注册页面。2.登入功能:去查询数据库数据。3.注册功能:将符合需求的内容插入到数据库中。

语言:C#

前端:ASP.NET

数据库:SQL Server

工具:Visual Studio2010、SQL Server 2019

—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— 分界线 —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——

分析需求:任何功能实现之前,都必须需要前端页面的前提下才可以编写功能,在绘制完前端页面后,分析功能触发方式(页面加载执行还是点击触发执行等等),最后就是要实现的功能编写。—— 15分钟 ——

需求执行:1.绘制登入和注册前端页面。2.登入和注册功能都是点击才触发的,所以是按钮的OnClick事件。

1.绘制登入页和注册页前端页面。

—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— 分界线 —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——

分析需求:在数据库未有任何数据的情况下,登入的查询功能是无法测试的,所以应该先编写注册功能,确保能正确的插入数据后,再使用登入的查询功能去获取数据,才可以测试功能是否正确执行。

需求执行:在前端页面中,找到注册按钮,由分析可得知,注册功能由点击按钮触发,所以使用的是按钮的OnClick事件。

 

1.绑定注册事件。

分析需求:既然本功能需要访问到数据库,那么前提是必须先搭建与数据库的连接,否则有关对数据库的操作将无法顺利执行。

需求执行:1.搭建与数据库的连接。2.根据业务需求编写功能。

【关键代码】

1.最顶部需要引入SQL库。

using System.Data;
using System.Data.SqlClient;

 

2.数据库对象流程搭建

 

(1)初始化数据库连接对象

SqlConnection conn = new SqlConnection("关键字");

功能分析:关键字的构成部分:("server=服务器名称;database =数据库名称;uid=登入名;pwd=密码");

 

 

(2)打开数据库

conn.Open();

 

(3)创建一个数据库命令行

SqlCommand cmd = conn.CreateCommand();

 

(4)编写SQL语句

cmd.CommandText = "SQL语句";

功能分析:根据当前的也许需求执行相应的功能,比如:当前执行的是注册功能,需要执行的就是插入数据相关sql语句。 inser into ......

 

(5)执行命令

cmd.ExecuteNonQuery();

功能分析:当执行完SQL语句后,我们需要知道语句是否正确执行成功,于是使用ExecuteNonQuery(),这个方法会返回受影响的行数,当受影响的行数>=1时,代表插入数据了。

 

(6)执行成功提示和关闭SQL函数(一般放置在事件方法的最后执行)

功能分析:当语句成功执行完,需要通知用户或者开发者知道,所执行的步骤已成功执行,并且可以根据业务需求跳转页面。执行完SQL相关的功能够,最好关闭SQL方法,以节省内存和优化用户体验。

        Response.Write("<script>alert('注册成功!');window.location.href ='跳转的页面路径'</script>");   //提示成功语句并跳转页面

        cmd.Dispose();                                  // 丢弃命令
        conn.Dispose();                                 // 丢弃连接

—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— 分界线 —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——

分析需求:在完成数据库的搭建后,于是就开始编写注册的功能,用户输入的数据都是不可被信任的,所谓的不可被信任的数据是指可以直接添加进数据库的数据,所以在将用户的数据添加进数据库之前,必须对用户输入的数据进行限制和筛选,只有被筛选后的数据才可以被信任添加进数据库中。

需求执行:1.获取用户在前台输入的数据。2.用户数据的非空判断。3.用户数据的值格式限制筛选(身份证、手机号、邮件、账号、密码等)

 

(1)获取用户的数据(一般在放置在事件最早执行)

例获取textBox输入的数据:

string username = txtName.Text;   //txtName 是前台用户名 TextBox输入框绑定的ID

 

(2)用户数据的非空判断(非空判断一般作为首要执行的判断条件)

功能分析:由于我们是使用asp做前端,可以在前端也中添加RequiredFieldValidator组建作为监听上传的数据中是否为空,如果为空在提示信息。

<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
                ControlToValidate="绑定监听组建ID" ErrorMessage="自义定提示内容" ValidationGroup="绑定组" style="color: red;" ></asp:RequiredFieldValidator>

 

(3)用户数据格式限制和筛选

功能分析:对于某些特定的数据,我们必须要求用户上传的是我们限制的正确格式,这样才能确定数据的精准和正确性。一般只用正则表达式进行对数据的限制和处理。

 

分析需求:当我们正确的搭建数据库后,并能确定数据是可信任数据,就可以将数据,通过sql语句添加进数据库中。

—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— 分界线 —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——

分析需求:注册功能完成后,开始思考查询功能。分析登入按钮是点击才执行的事件所以应该使用按钮的OnClick,登入事件也是得使用到数据库,那么也得进行对数据库访问的搭建,登入功能就是拿用户名和密码去数据库里查是否存在这一条数据,如果有就允许登入,没有就给用户提示密码错误。

需求执行:1.前端按钮事件绑定后台功能 2.搭建数据库 3.查询数据是否存在 4.登入成功的页面跳转和提示

 

(1)前端按钮事件绑定后台功能 (基本于上述注册功能中描述相同)

 

(2)搭建数据库 (基本于上述注册功能中描述相同)

 

(2.1)初始化数据库连接对象

 

SqlConnection conn = new SqlConnection("关键字");

 

 

(2.2)打开数据库

 

conn.Open();

 

 

 

(2.3)创建一个数据库命令行

 

SqlCommand cmd = conn.CreateCommand();

 

 

 

(2.4)编写SQL语句

 

cmd.CommandText = "SQL语句";

 

功能分析:根据当前的也许需求执行相应的功能。

 

 

 

(2.5)执行命令

 

object ssc = cmd.ExecuteScalar();    //返回查询结果集中的第一行元素

功能分析:当执行完SQL语句后,我们需要知道语句是否正确执行成功,这里是查询数据,我们需要获取的是查询到的值是否存在,所以使用ExecuteScalar()方法,并使用object 对象进行接收值。

 

(2.6)判断返回结果执行功能

功能分析:此处使用object 对象 ssc 接收sql执行查询返回的值, 若查询结果不存在则给用户返回提示语句,反之则执行页面跳转或登入成功提示。

 

 

 

总结:用户输入的都是不可信任数据,需要对数据进行筛选和限制!用户输入的都是不可信任数据,需要对数据进行筛选和限制!用户输入的都是不可信任数据,需要对数据进行筛选和限制!

 

posted @ 2021-01-21 02:43  FlowersMie  阅读(1008)  评论(0编辑  收藏  举报