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

  上篇我记录了自己的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的简单数据库操作(三)——简单增删改查的实际应用的更多相关文章

  1. sqlite数据库操作详细介绍 增删改查,游标

    sqlite数据库操作详细介绍 增删改查,游标     本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code     package com.example ...

  2. Mysql数据库操作复习,增删改查

    Mysql数据库 Apache(服务员)    php(大厨)    mysql(冰柜) Mysql是瑞典的mysqlAB公司开发的一款中小型关系型数据库管理系统. MysqlAB公司在2008年被S ...

  3. iOS- Swift:使用FMDB进行数据库操作(线程安全:增删改查)

    1.前言 GitHub上2000多颗星的FMDB数据库框架想来大家都很熟悉, 今天用Swift对其进行了一个完成的数据存储读流程 写完之后用博客分享之,与大家一起交流, 希望对需要的朋友提供些帮助   ...

  4. 最简单的jsp+servlet的增删改查代码

    package ceet.ac.cn.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.s ...

  5. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  6. 四种简单的sql语句(增删改查语句)

    四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...

  7. MySQL数据库之表的增删改查

    目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...

  8. C#操作Excel数据增删改查(转)

    C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...

  9. C#操作Excel数据增删改查示例

    Excel数据增删改查我们可以使用c#进行操作,首先创建ExcelDB.xlsx文件,并添加两张工作表,接下按照下面的操作步骤即可 C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文 ...

  10. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

随机推荐

  1. 一副美丽而庞大的SQL TUNING计划美图

    最近因为很忙,一直忙着开发公司的产品和客户的事情,杂七杂八,忙的不亦乐乎,所以,好久没有来这里写东西,这两天为客户优化了一个系统,优化前CPU持续冲顶爆满,导致系统卡死,应用系统不能正常使用,其中有个 ...

  2. pyqt5实现注册界面并获得文本框内容

    获取框里面的内容,有一个BUG,搞了好久才搞定. __author__ = 'ayew'import sysfrom PyQt5.QtCore import*from PyQt5.QtWidgets ...

  3. 对Javascript 类、原型链、继承的理解

    一.序言   和其他面向对象的语言(如Java)不同,Javascript语言对类的实现和继承的实现没有标准的定义,而是将这些交给了程序员,让程序员更加灵活地(当然刚开始也更加头疼)去定义类,实现继承 ...

  4. Universal-Image-Loader源码解解析---display过程 + 获取bitmap过程

    Universal-Image-Loader在github上的地址:https://github.com/nostra13/Android-Universal-Image-Loader 它的基本使用请 ...

  5. safari 浏览器 input textarea select 等不能响应用户输入

    解决办法 -webkit-user-select:auto; /*webkit浏览器*/ user-select:auto; -o-user-select:auto; -ms-user-select: ...

  6. Akka实践一些总结

    最近在一些服务中使用了akka,主要用来做异步解耦和本地消息分发(路由),这里简单总结一下用法. 与spring集成 网上有不少集成的例子,要使用到spring的扩展. 我这边没有这样处理,而是简单把 ...

  7. GC参考手册 —— GC 调优(命令篇)

    运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer ...

  8. python——对图像进行卷积操作,使用多个滤波器

    线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果.做法很简单.首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像.然后,对于图像的 ...

  9. ASP.NET/MVC/Core的HTTP请求流程

    ASP.NET HTTP管道(Pipeline)模型 1. 先讲一点,再深刻思考 一般我们都在写业务代码,优化页面,优化逻辑之间内徘徊.也许我们懂得HTTP,HTTPS的GET,POST,但是我们大部 ...

  10. Fundebug微信小程序错误监控插件更新至1.1.0,新增test()与notifyHttpError()方法

    摘要: 1.1.0新增fundebug.test()和fundebug.notifyHttpError()方法,同时大小压缩至15K. Fundebug是专业的小程序BUG监控服务,可以第一时间为您捕 ...