ado.net的简单数据库操作(三)——简单增删改查的实际应用
果然,在犯困的时候就该写写博客,写博客就不困了,哈哈!
上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦。
实例描述:在数据库新建一张TbClass表,将表的内容读取到一个DataGridView上,并且可以在winform面板上对表里的内容进行增、删、改的操作。首先给出winform的设计:

下面开始写步骤咯,哈哈:
第一步:搭建该winform框架:


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

第二步:编写代码:
1.数据表介绍
首先看看我的数据库长啥样的:

tClassId为主键自增,不能为空,tClassName为nvarchar,非空 ,tClassDesc为nVarchar,可以为空。
然后确定查询语句,为:select * from TbClass;
2.添加SqlHelper,编写数据加载方法
首先,创建LoadData()方法,然后在Form1_Load()方法中调用LoadData方法;
LoadData方法书写如下:
public void LoadData()
{
//声明一个list集合
List<TbClass> list = new List<TbClass>();
//书写sql语句
string sql = "select * from TbClass";
//调SqlHelper实现查询
SqlDataReader reader = SqlHelper.ExecuteReader(sql);
if (reader.HasRows)
{
while (reader.Read())
{
//创建数据库对象tbClass
TbClass tbClass = new TbClass();
tbClass.tClassId = reader.GetInt32();
tbClass.tClassName = reader.GetString();
tbClass.tClassDesc = reader.IsDBNull() ? null : reader.GetString(); //数据表中该字段是允许为空的,故这里做出判断,为空则使该值为null,
list.Add(tbClass);
}
}
//将list数据绑定到dataGridView上
this.dataGridView1.DataSource = list;
}
在使用SqlHelper之前,需要在App.config中添加配置代码和在项目中添加引用,这是需要注意的,因为在以前的博客中有详细讲解如何添加,这里不再讲了哈。
下面看一下读取数据后的结果:

3.完成添加班级的功能
添加功能主要是向数据库中插入一条记录,首先写出sql语句:
sql = “insert into TbClass (tClassName,tClassDesc) Values('高5班','文科班') ”;
因为这里需要使用传递参数的sql语句,所以上面的语句写为:
sql = "insert into TbClass (tClassName,tClassDesc) Values(@classname,@classdesc)"
然后我们在winform上双击 “添加"按钮,进入相关方法体边界方法:
看代码:
private void button1_Click(object sender, EventArgs e)
{
//1.执行插入操作
bool row = InsertClass();
if (row)
{
//2.插入成功,重新加载数据
MessageBox.Show("添加了" + +"班级");
LoadData();
}
else
{
//插入失败
} } /// <summary>
/// 执行向数据库中插入添加的班级的操作
/// </summary>
/// <returns> 返回布尔类型结果,成功返回true,否则false</returns>
private Boolean InsertClass()
{
//1.获取输入值
string className = txtClassName.Text.Trim();
string classDesc = txtClassDesc.Text.Trim();
//2.sql语句
string sql = "insert into TbClass (tClassName,tClassDesc) values (@classname,@classdesc)";
//3.定义参数数组
SqlParameter[] parameters = new SqlParameter[] {
new SqlParameter("@classname",System.Data.SqlDbType.NVarChar,){Value = className },
new SqlParameter("@classdesc",System.Data.SqlDbType.NVarChar,){Value = classDesc }
};
//4.调用SqlHelper,返回结果
return SqlHelper.ExecuteNonQurey(sql,parameters) > ; }
然后看一下插入的结果:


4.修改班级和删除班级
(1)实现选中某行,该行的信息出现在下面的编辑框中
要实现对某个行的操作,首先得选中某行,所以,首先要把dataGridView的属性里的SelectionMode改为FullRowSelect,如图:

然后,要在鼠标选中某一行时,获取该行的tClassId.接下来看看获取该id的做法:
在dataGridView的属性页中找到一个名为RowEnter的事件,双击进入方法,编写函数:


然后我们看代码:
private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
{
//获取当前选中的行对象
DataGridViewRow currentRow = this.dataGridView1.Rows[e.RowIndex]; //获取选中行对象中的值,并将值存入TbClass中
TbClass model = currentRow.DataBoundItem as TbClass; if (model != null)
{
txtClassId.Text = model.tClassId.ToString();
txtEditClassName.Text = model.tClassName.ToString();
txtEditClassDesc.Text = model.tClassDesc.ToString();
} }

(3)实现修改操作
在获取了某行的行内信息后那么对该行进行修改和删除就变得简单了,又是几个数据库的操作,下面我们双击保存修改,进入修改按钮方法体中书写代码:
代码如下:
/// <summary>
/// 将修改后的内容存储到数据库,并重新加载数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
//获取修改后的数据
TbClass model = new TbClass();
int classId = Convert.ToInt32(txtClassId.Text);
string className = txtEditClassName.Text.Trim();
string classDesc = txtEditClassDesc.Text.Trim();
//确定和书写sql语句
string sql = "update TbClass set tClassName = @classname , tClassDesc = @classdesc where tClassId = @clsssid";
//定义参数数组并赋值
SqlParameter[] parameters = new SqlParameter[] {
new SqlParameter("@clsssid",System.Data.SqlDbType.Int){ Value = classId},
new SqlParameter("@classname",System.Data.SqlDbType.NVarChar,){Value = className },
new SqlParameter("@classdesc ",System.Data.SqlDbType.NVarChar,){Value = classDesc }
};
int row = SqlHelper.ExecuteNonQurey(sql,parameters);
if (row > )
{
MessageBox.Show("更新了" +row + "行");
LoadData();
}
else
{ } }
演示结果:


(4)删除操作
同样是操作数据库的语句,还是看代码吧,哈哈:
private void button3_Click(object sender, EventArgs e)
{
//获取当前行的 tClassId
int classId = Convert.ToInt32(txtClassId.Text);
//sql语句
string sql = "delete from TbClass where tClassId = @classid";
//参数数组
SqlParameter[] parameters = new SqlParameter[] {
new SqlParameter("@classid",System.Data.SqlDbType.Int){ Value = classId}
};
//执行sql语句
int row = SqlHelper.ExecuteNonQurey(sql,parameters);
if (row > )
{
MessageBox.Show("删除了" + row + "记录");
LoadData();
} }

结果图:

好了,关于ado.net的一些基本操作就记录到这里哦,后面要去学mvc了,希望和其他菜鸟们一起进步。
我的QQ: 3074596466
ado.net的简单数据库操作(三)——简单增删改查的实际应用的更多相关文章
- sqlite数据库操作详细介绍 增删改查,游标
sqlite数据库操作详细介绍 增删改查,游标 本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code package com.example ...
- Mysql数据库操作复习,增删改查
Mysql数据库 Apache(服务员) php(大厨) mysql(冰柜) Mysql是瑞典的mysqlAB公司开发的一款中小型关系型数据库管理系统. MysqlAB公司在2008年被S ...
- iOS- Swift:使用FMDB进行数据库操作(线程安全:增删改查)
1.前言 GitHub上2000多颗星的FMDB数据库框架想来大家都很熟悉, 今天用Swift对其进行了一个完成的数据存储读流程 写完之后用博客分享之,与大家一起交流, 希望对需要的朋友提供些帮助 ...
- 最简单的jsp+servlet的增删改查代码
package ceet.ac.cn.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.s ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- 四种简单的sql语句(增删改查语句)
四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...
- MySQL数据库之表的增删改查
目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...
- C#操作Excel数据增删改查(转)
C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...
- C#操作Excel数据增删改查示例
Excel数据增删改查我们可以使用c#进行操作,首先创建ExcelDB.xlsx文件,并添加两张工作表,接下按照下面的操作步骤即可 C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文 ...
- SpringBoot操作MongoDB实现增删改查
本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...
随机推荐
- C#多线程中的异常处理
常规Thread中处理异常 使用Thread创建的子线程,需要在委托中捕捉,无法在上下文线程中捕捉 static void Main(string[] args) { ThreadStart thre ...
- 【转】APP功能测试要领
也许大家从事APP功能测试已经有一段时间了,心中一定有一个疑问,怎么样才能提高测试的覆盖面呢,我今天把APP功能测试内容分为APP本身的功能,APP关联的事务.APP外部环境.APP其他四大块来给大家 ...
- 我是庖丁,<肢解IOT平台>之物模型
前言 物模型是对设备在云端的功能描述,包括设备的属性,数据,服务和事件. 物联网平台通过定义一种物的描述语言来描述物模型,称之为 TSL(即 Thing Specification Language) ...
- 前端笔记之ES678&Webpack&Babel(上)初识ES678&Babel&let和const&解构&语法
一.ES版本简介和调试运行方法 1.1 ECMAScript简介 MDN手册:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript JavaS ...
- Docker最全教程之Python爬网实战(二十一)
Python目前是流行度增长最快的主流编程语言,也是第二大最受开发者喜爱的语言(参考Stack Overflow 2019开发者调查报告发布).笔者建议.NET.Java开发人员可以将Python发展 ...
- Redis客户端——Jedis的使用
本文介绍基于Java语言的Redis客户端——Jedis的使用,包括Jedis简介.获取Jedis.Jedis直连.Jedis连接池以及二者的对比的选择. Jedis简介 Jedis 是 Redis ...
- Vue源码解析(二):数据驱动
一.数据驱动: 数据驱动是vue.js最大的特点.在vue.js中,数据驱动就是当数据发生变化的时候,用户界面发生相应的变化,开发者不需要手动的去修改dom.数据驱动还有一部分是数据更新驱动视图变化. ...
- web项目自定义路由_实现静态资源URL控制
前言: IIS会默认把:图片.JS.HTML.CSS这些文件当成静态资源处理,为了减少服务器压力,默认这些静态资源是不走URL路由规则控制的. 作为小白及初学者,本人对这些了解甚少,补充基础知识吧: ...
- 简单工厂模式(Simple Factory Pattern)
简单工厂模式概述 定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类 在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被 ...
- vue 中使用sass实现主体换肤
有如下代码要实现换肤功能 <template> <div class="app-root" :class="themeClass"> & ...