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 ...
随机推荐
- java中八大基本数据类型详解
1.基本数据类型的分类 java中的类型分为基本数据类型和引用类型,今天我们讨论的是java中的八大基本数据类型. 基本数据类型可以分为三类:1.数值类型.2.字符类型.3.布尔类型. 数值类型又分为 ...
- Ethercat 学习总结一:协议总结
原文地址:https://blog.csdn.net/qq923433160/article/details/83781812 EtherCAT 总线的国家标准相关资料,比较详细介绍了协议: http ...
- typeconfig.json配置说明
如果一个目录下存在一个tsconfig.json文件,那么它意味着这个目录是TypeScript项目的根目录. 不带任何输入文件的情况下调用tsc,编译器会从当前目录开始去查找tsconfig.jso ...
- vue中的 ref 和 $refs
如图,ref 被用来给元素或子组件注册引用信息.引用信息将会注册在父组件的 $refs 对象上.如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素:如果用在子组件上,引用就指向组件实例: ...
- sqlmap Bool型&延时型 检测策略分析
目录 sqlmap Bool型&延时型 检测策略分析 0x00 预备-queryPage() 0x01 bool型检测策略 判断依据 quick_ratio() 案例 0x02 延时型 判断依 ...
- vue中路由按需加载的几种方式
使用vue-cli构建项目后,我们会在Router文件夹下面的index.js里面引入相关的路由组件,如: import Hello from '@/components/Hello' import ...
- 浅谈CSS浮动属性
要介绍css的float浮动属性,就必须先了解一下标准文档流 标准文档流: 在没有css的干预下,块级元素独占一行,可以设置宽高,行内元素并排显示,宽高自动填充. HTML页面的标准文档流(默 ...
- 企业自主可控免费开源ERP:Odoo采购管理解决方案
供应商基础资料 1. 所有的供应商基础资料,Odoo开账启用时,期初的客户数据如果大于200条,可以批量导入: 2. 点“采购/采购/供应商”菜单可以查看.编辑修改.搜索所有的供应商基础资料: 3. ...
- (一)初识Redis
1.redis简介 Redis是一个速度非常快的key-value非关系型存储数据库,可以存储5种形态的键值对,可以将存储在内存中的键值对持久化到硬盘,可以使用复制特性扩展读性能,还可以使用客户端分片 ...
- How to fix corrupt HDFS FIles
1 问题描述 HDFS在机器断电或意外崩溃的情况下,有可能出现正在写的数据(例如保存在DataNode内存的数据等)丢失的问题.再次重启HDFS后,发现hdfs无法启动,查看日志后发现,一直处于安全模 ...