前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ado.net的简单数据库操作(三)——简单增删改查的实际应用

ado.net的简单数据库操作(三)——简单增删改查的实际应用

作者头像
CherishTheYouth
发布2019-09-11 14:36:01
1.3K0
发布2019-09-11 14:36:01
举报
文章被收录于专栏:Vue技术实践Vue技术实践

  果然,在犯困的时候就该写写博客,写博客就不困了,哈哈!

  上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦。

  实例描述:在数据库新建一张TbClass表,将表的内容读取到一个DataGridView上,并且可以在winform面板上对表里的内容进行增、删、改的操作。首先给出winform的设计:

下面开始写步骤咯,哈哈:

第一步:搭建该winform框架:

按图所示分别对其属性进行一些修改,搭建完成后为:

第二步:编写代码:

1.数据表介绍

首先看看我的数据库长啥样的:

tClassId为主键自增,不能为空,tClassName为nvarchar,非空 ,tClassDesc为nVarchar,可以为空。

然后确定查询语句,为:select * from TbClass;

2.添加SqlHelper,编写数据加载方法

首先,创建LoadData()方法,然后在Form1_Load()方法中调用LoadData方法;

LoadData方法书写如下:

代码语言:javascript
复制
 1  public void LoadData()
 2  {
 3             //声明一个list集合
 4             List<TbClass> list = new List<TbClass>();
 5             //书写sql语句
 6             string sql = "select * from TbClass";
 7             //调SqlHelper实现查询
 8             SqlDataReader reader = SqlHelper.ExecuteReader(sql);
 9             if (reader.HasRows)
10             {
11                 while (reader.Read())
12                 {
13                     //创建数据库对象tbClass
14                     TbClass tbClass = new TbClass();
15                     tbClass.tClassId = reader.GetInt32(0);
16                     tbClass.tClassName = reader.GetString(1);
17                     tbClass.tClassDesc = reader.IsDBNull(2) ? null : reader.GetString(2); //数据表中该字段是允许为空的,故这里做出判断,为空则使该值为null,
18                     list.Add(tbClass);
19                 }
20             }
21             //将list数据绑定到dataGridView上
22             this.dataGridView1.DataSource = list;
23  }

  在使用SqlHelper之前,需要在App.config中添加配置代码和在项目中添加引用,这是需要注意的,因为在以前的博客中有详细讲解如何添加,这里不再讲了哈。

下面看一下读取数据后的结果:

3.完成添加班级的功能

添加功能主要是向数据库中插入一条记录,首先写出sql语句:

代码语言:javascript
复制
sql = “insert into TbClass (tClassName,tClassDesc) Values('高5班','文科班') ”;

因为这里需要使用传递参数的sql语句,所以上面的语句写为:

代码语言:javascript
复制
sql = "insert into TbClass (tClassName,tClassDesc) Values(@classname,@classdesc)"

然后我们在winform上双击 “添加"按钮,进入相关方法体边界方法:

看代码:

代码语言:javascript
复制
 1          private void button1_Click(object sender, EventArgs e)
 2          {
 3             //1.执行插入操作
 4              bool  row = InsertClass();
 5             if (row)
 6             {
 7                 //2.插入成功,重新加载数据
 8                 MessageBox.Show("添加了" + 1 +"班级");
 9                 LoadData();
10             }
11             else
12             {
13                     //插入失败
14             }
15           
16          }
17 
18         /// <summary>
19         /// 执行向数据库中插入添加的班级的操作
20         /// </summary>
21         /// <returns> 返回布尔类型结果,成功返回true,否则false</returns>
22         private Boolean InsertClass()
23         {
24             //1.获取输入值
25             string className = txtClassName.Text.Trim();
26             string classDesc = txtClassDesc.Text.Trim();
27             //2.sql语句
28             string sql = "insert into TbClass (tClassName,tClassDesc) values (@classname,@classdesc)";
29             //3.定义参数数组
30             SqlParameter[] parameters = new SqlParameter[] {
31                 new SqlParameter("@classname",System.Data.SqlDbType.NVarChar,50){Value = className },
32                 new SqlParameter("@classdesc",System.Data.SqlDbType.NVarChar,250){Value = classDesc }
33             };
34             //4.调用SqlHelper,返回结果
35             return   SqlHelper.ExecuteNonQurey(sql,parameters) > 0;
36 
37         }                    

然后看一下插入的结果:

4.修改班级和删除班级

(1)实现选中某行,该行的信息出现在下面的编辑框中

要实现对某个行的操作,首先得选中某行,所以,首先要把dataGridView的属性里的SelectionMode改为FullRowSelect,如图:

然后,要在鼠标选中某一行时,获取该行的tClassId.接下来看看获取该id的做法:

在dataGridView的属性页中找到一个名为RowEnter的事件,双击进入方法,编写函数:

然后我们看代码:

代码语言:javascript
复制
 1  private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
 2  {
 3             //获取当前选中的行对象
 4             DataGridViewRow currentRow = this.dataGridView1.Rows[e.RowIndex];
 5 
 6             //获取选中行对象中的值,并将值存入TbClass中
 7             TbClass model = currentRow.DataBoundItem as TbClass;
 8 
 9             if (model != null)
10             {
11                 txtClassId.Text = model.tClassId.ToString();
12                 txtEditClassName.Text = model.tClassName.ToString();
13                 txtEditClassDesc.Text = model.tClassDesc.ToString();
14             }
15             
16}

(3)实现修改操作

在获取了某行的行内信息后那么对该行进行修改和删除就变得简单了,又是几个数据库的操作,下面我们双击保存修改,进入修改按钮方法体中书写代码:

代码如下:

代码语言:javascript
复制
 1   /// <summary>
 2         /// 将修改后的内容存储到数据库,并重新加载数据
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void button2_Click(object sender, EventArgs e)
 7         {
 8             //获取修改后的数据
 9             TbClass model = new TbClass();
10             int classId = Convert.ToInt32(txtClassId.Text);
11             string className = txtEditClassName.Text.Trim();
12             string classDesc = txtEditClassDesc.Text.Trim();
13             //确定和书写sql语句
14             string sql = "update TbClass set tClassName = @classname , tClassDesc = @classdesc where tClassId = @clsssid";
15             //定义参数数组并赋值
16             SqlParameter[] parameters = new SqlParameter[] {
17                 new SqlParameter("@clsssid",System.Data.SqlDbType.Int){ Value = classId},
18                 new SqlParameter("@classname",System.Data.SqlDbType.NVarChar,50){Value = className },
19                 new SqlParameter("@classdesc ",System.Data.SqlDbType.NVarChar,250){Value = classDesc }
20             };
21             int row = SqlHelper.ExecuteNonQurey(sql,parameters);
22             if (row > 0)
23             {
24                 MessageBox.Show("更新了" +row + "行");
25                 LoadData();
26             }
27             else
28             {
29                     
30             }
31 
32         }

演示结果:

(4)删除操作

同样是操作数据库的语句,还是看代码吧,哈哈:

代码语言:javascript
复制
 1   private void button3_Click(object sender, EventArgs e)
 2         {
 3             //获取当前行的 tClassId
 4             int classId = Convert.ToInt32(txtClassId.Text);
 5             //sql语句
 6             string sql = "delete  from TbClass where tClassId = @classid";
 7             //参数数组
 8             SqlParameter[] parameters = new SqlParameter[] {
 9                 new SqlParameter("@classid",System.Data.SqlDbType.Int){ Value = classId}
10             };
11             //执行sql语句
12             int row = SqlHelper.ExecuteNonQurey(sql,parameters);
13             if (row > 0)
14             {
15                 MessageBox.Show("删除了" + row + "记录");
16                 LoadData();
17             }
18 
19         }

结果图:

好了,关于ado.net的一些基本操作就记录到这里哦,后面要去学mvc了,希望和其他菜鸟们一起进步。

我的QQ: 3074596466

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档