说明:通过DataAdapter或者dataset连接数据库,实现对数据增删改查操作.

以前写过一篇步步为营-23-通过GridView实现增删改

1:SqlDataAdapter  DataTable实现

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace DataView
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
} private void MainForm_Load(object sender, EventArgs e)
{
//01-创建配置文件 添加引用
//02-设置连接字符串]
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
//03 创建连接字符串
using (SqlConnection conn = new SqlConnection(connStr))
{
//04-创建数据库操作脚本
string sqlStr = "select EmpId, Pwd, StuName, StuAge, Delflag, ClassNo from UserInfo";
using (SqlDataAdapter sda = new SqlDataAdapter(sqlStr,conn))
{
//05-隆重介绍一下Adapter-适配器
//05-01判断sqlConnection是否初始化
//05-02初始化Select Command对象
//05-03 通过cmd对象执行返回SQLdataReader对象
//05-04 读取数据,填充到datatreader上
DataTable dt = new DataTable();
sda.Fill(dt);
//05-创建实体模型,对数据进行封装
List<UserINfo> userList = new List<UserINfo>();
foreach (DataRow dataRow in dt.Rows)
{
//封装数据
userList.Add(new UserINfo() { EmpId = int.Parse(dataRow["EmpId"].ToString()),
StuName = dataRow["StuName"].ToString(),
StuAge = int.Parse(dataRow["StuAge"].ToString())
}); }
//06-设置数据源
this.dataGridView1.DataSource = userList; }
} }
}
}

2:运行效果

3SqlDataAdapter  DataSet实现

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace DataView
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
} private void MainForm_Load(object sender, EventArgs e)
{
//01-创建配置文件 添加引用
//02-设置连接字符串]
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
//03 创建连接字符串
using (SqlConnection conn = new SqlConnection(connStr))
{
//04-创建数据库操作脚本
string sqlStr = @"
select ClassId, ClassName from ClassInfo;
select EmpId, Pwd, StuName, StuAge, Delflag, ClassNo from UserInfo";
using (SqlDataAdapter sda = new SqlDataAdapter(sqlStr,conn))
{
//05-隆重介绍一下Adapter-适配器
//05-01判断sqlConnection是否初始化
//05-02初始化Select Command对象
//05-03 通过cmd对象执行返回SQLdataReader对象
//05-04 读取数据,填充到datatreader上 DataSet ds = new DataSet();
sda.Fill(ds);
List<UserINfo> userList = new List<UserINfo>();
foreach (DataRow dataRow in ds.Tables[].Rows)
{
//封装数据
userList.Add(new UserINfo()
{
EmpId = int.Parse(dataRow["EmpId"].ToString()),
StuName = dataRow["StuName"].ToString(),
StuAge = int.Parse(dataRow["StuAge"].ToString())
}); }
this.dataGridView1.DataSource = userList;
}
} }
}
}

4 实现增删查改--通过SqlCommandBuilder

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace DataView
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private void Form2_Load(object sender, EventArgs e)
{
//01-创建配置文件 添加引用
//02-设置连接字符串]
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
//03 创建连接字符串
using (SqlConnection conn = new SqlConnection(connStr))
{
//04-创建数据库操作脚本
string sqlStr = @"select EmpId, Pwd, StuName, StuAge, Delflag, ClassNo from UserInfo";
using (SqlDataAdapter sda = new SqlDataAdapter(sqlStr, conn))
{ DataTable dt =new DataTable();
sda.Fill(dt); this.dataGridView1.DataSource = dt;
}
} } private void btnSave_Click(object sender, EventArgs e)
{
//把DataGridView的修改的数据保存到数据库中去。
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; //修改的sql一定要跟 查询的sql脚本一致。
string sqlStr = @"select EmpId, Pwd, StuName, StuAge, Delflag, ClassNo from UserInfo"; using (SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, connStr))
{
//01-拿到修改之后的datatable对象
DataTable dt = this.dataGridView1.DataSource as DataTable;
//把修改完的内存表 映射到数据库中对应的表
//SQLCommandBuilder帮助我们Adapter生成相关的command
using (SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adapter))
{
adapter.Update(dt);
}
}
}
}
}

5 实现增删查改--手动写

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace DataView
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private void Form2_Load(object sender, EventArgs e)
{
//01-创建配置文件 添加引用
//02-设置连接字符串]
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
//03 创建连接字符串
using (SqlConnection conn = new SqlConnection(connStr))
{
//04-创建数据库操作脚本
string sqlStr = @"select EmpId, Pwd, StuName, StuAge, Delflag, ClassNo from UserInfo";
using (SqlDataAdapter sda = new SqlDataAdapter(sqlStr, conn))
{ DataTable dt =new DataTable();
sda.Fill(dt); this.dataGridView1.DataSource = dt;
}
} } private void btnSave_Click(object sender, EventArgs e)
{
//把DataGridView的修改的数据保存到数据库中去。
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; //修改的sql一定要跟 查询的sql脚本一致。
string sqlStr = @"select EmpId, Pwd, StuName, StuAge, Delflag, ClassNo from UserInfo"; using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, conn))
{
//adapter.in
//拿到修改完了之后的DataTable对象
DataTable dt = this.dataGridView1.DataSource as DataTable; // #region 手写 删除 SqlCommand
//删除的Command
adapter.DeleteCommand = conn.CreateCommand();
adapter.DeleteCommand.CommandText = "delete from UserInfo where EmpId=@EmpId"; //执行删除操作,把 EmpId列的值 给@EmpId参数用。
adapter.DeleteCommand.Parameters.Add("@EmpId", SqlDbType.Int, , "EmpId"); #endregion #region 手写 修改的 SqlCommand
adapter.UpdateCommand = conn.CreateCommand();
adapter.UpdateCommand.CommandText = "update UserInfo set Pwd=@Pwd, StuName=@StuName,StuAge=@StuAge ,Delflag=@Delflag, ClassNo=@ClassNo where EmpId=@EmpId"; //执行更新操作
adapter.UpdateCommand.Parameters.Add("@EmpId", SqlDbType.Int, , "EmpId");
adapter.UpdateCommand.Parameters.Add("@Pwd", SqlDbType.NVarChar, , "Pwd");
adapter.UpdateCommand.Parameters.Add("@StuName", SqlDbType.NVarChar, , "StuName");
adapter.UpdateCommand.Parameters.Add("@StuAge", SqlDbType.Int, , "StuAge");
adapter.UpdateCommand.Parameters.Add("@Delflag", SqlDbType.Int, , "Delflag");
adapter.UpdateCommand.Parameters.Add("@ClassNo", SqlDbType.Int, , "ClassNo");
#endregion #region 手写 新增 SqlCommand
adapter.InsertCommand = conn.CreateCommand();
adapter.InsertCommand.CommandText = "INSERT INTO UserInfo (Pwd,StuName,StuAge,Delflag,ClassNo) VALUES (@Pwd,@StuName, @stuAge, @Delflag,@ClassNo)"; //执行更新操作
adapter.InsertCommand.Parameters.Add("@Pwd", SqlDbType.NVarChar, , "Pwd");
adapter.InsertCommand.Parameters.Add("@StuName", SqlDbType.NVarChar, , "StuName");
adapter.InsertCommand.Parameters.Add("@StuAge", SqlDbType.Int, , "StuAge");
adapter.InsertCommand.Parameters.Add("@Delflag", SqlDbType.Int, , "Delflag");
adapter.InsertCommand.Parameters.Add("@ClassNo", SqlDbType.Int, , "ClassNo");
#endregion adapter.Update(dt); #region 使用命令生成器 //找到表中,添加数据,生成一条insert ,Insert Command ExcuteNonQuery到数据库中。
//如果修改的:update
//delet... ////把修改完的内存表dt 变化映射到数据库中的表的变化。
////SqlCommandBuilder帮助我们的Adapter生成相关的CRUD SqlCommand
//using (SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adapter))
//{
// adapter.Update(dt);
//} #endregion
}
}//end using Conn
MessageBox.Show("保存成功");
}
}
}

手写的

步步为营-42-通过DataAdapter实现增删查改的更多相关文章

  1. java实现简单的数据库的增删查改,并布局交互界面

        一.系统简介 1.1.简介  本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...

  2. C# SQLite 创建数据库的方法增删查改语法和命令

    SQLite介绍 SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准. SQLite数据库官方主页 ...

  3. ADO.NET教程(2)实现增删查改

    声明一个类,在类中实现增删查改的方法 public class AdoNet { //声明连接字符串 public string Sqlstr = "data source={0};data ...

  4. 在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  5. 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  6. 3.EF 6.0 Code-First实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-entity-framework-5-0-code- ...

  7. 4.在MVC中使用仓储模式进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...

  8. 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  9. jdbc的实例应用:增删查改实现

    //在jdbc中进行增删查改 //查看所有 public static void findAll() { String url = "jdbc:mysql://localhost:3306/ ...

随机推荐

  1. FZU - 1688 Binary land

    题目链接  Problem 1688 Binary land Accept: 72    Submit: 171Time Limit: 1000 mSec    Memory Limit : 3276 ...

  2. Java编程思想 学习笔记2

    二.一切都是对象 1.用引用操纵对象 在Java中,一切都被视为对象,但操纵的标识符实际上是对象的一个“引用”.可以将这想象成遥控器(引用)来操纵电视机(对象).另外,没有电视机,遥控器也可以单独存在 ...

  3. db.properties文件的配置格式

    #加载驱动 mysql.driver=com.mysql.jdbc.Driver #加载数据库 mysql.url=jdbc:mysql://localhost:3306/floor_shop #用户 ...

  4. Python基础-day03

    写在前面 上课第三天,打卡:  不要让干净的灵魂染上尘埃,永远年轻.永远热泪盈眶 一.再谈编码 - 文件的概念 '文件' 是一个抽象的概念,是操作系统提供的外部存储设备的抽象,对应底层的硬盘:它是程序 ...

  5. LR(0)文法项目集规范族、DFA和分析表的构建实例

    最近在复习编译原理,考试之前以为自己懂了,眼高手低就没去实践.结果一考试出问题了.... 学习就要脚踏实地,容不得半点模糊.凭着侥幸心理很危险的.以后要引以为戒啊. 特别写出这篇文章 :一来总结一下这 ...

  6. 01、@ConfigurationProperties 将属性文件里的值映射到JavaBean

    @ConfigurationProperties("person") //或是prefix属性 @Component //必须注册成容器中的bean被容器管理起来 public c ...

  7. 第15月第29天 ffmpeg AVERROR_EOF

    1. 在直播时返回AVERROR_EOF代表流结束吗?但对方还在直播,没有结束. int ret = av_read_frame(mContext, pkt); if (ret == AVERROR_ ...

  8. Linux命令行与shell脚本编程大全.第3版(文字版) 超清文字-非扫描版 [免积分、免登录]

    此处免费下载,无需账号,无需登录,无需积分.收集自互联网,侵权通知删除. 点击下载:Linux命令行与shell脚本编程大全.第3版 (大小:约22M)

  9. JavaScript练习 - 正反选练习

    正反选练习 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  10. vlc-android 的编译过程

    参考官方文档:https://wiki.videolan.org/AndroidCompile#Get_VLC_Source 值得注意的的地方: 1.切记安装以下工具 sudo apt-get ins ...