步步为营-42-通过DataAdapter实现增删查改
说明:通过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实现增删查改的更多相关文章
- java实现简单的数据库的增删查改,并布局交互界面
一.系统简介 1.1.简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...
- C# SQLite 创建数据库的方法增删查改语法和命令
SQLite介绍 SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准. SQLite数据库官方主页 ...
- ADO.NET教程(2)实现增删查改
声明一个类,在类中实现增删查改的方法 public class AdoNet { //声明连接字符串 public string Sqlstr = "data source={0};data ...
- 在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 3.EF 6.0 Code-First实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-entity-framework-5-0-code- ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- jdbc的实例应用:增删查改实现
//在jdbc中进行增删查改 //查看所有 public static void findAll() { String url = "jdbc:mysql://localhost:3306/ ...
随机推荐
- ibatis (mybatis) for循环拼接语句【转】
使用 , 拼接 查询条件dto public class queryCondition{ private String[] stuIds; private String name;} 查询sqlMap ...
- C#中子线程操作主线程中窗体上控件的方法
Demo this.listView1.Visible = true; this.listView1.BeginUpdate();this.listView1.EndUpdate(); //结束数据处 ...
- mysql alter 用法,修改表,字段等信息
一: 修改表信息 1.修改表名 alter table test_a rename to sys_app; 2.修改表注释 alter table sys_application comment '系 ...
- HAX kernel module is not installed
dev.android.emulator.haxm 运行emulator -avd xxx来启动名为xxx的模拟器,但报如下错误: emulator: ERROR: x86 emulation cur ...
- VS2013中修改MFC对话框左上角和exe图标
一.开发环境 1.VS2013: 2.C++ / MFC: 二.更改步骤 1)创建一个新工程,可以什么都不加.打开“资源视图”, 右键点击项目名称,选择“添加资源”,导入“Icon”资源文件(事先准备 ...
- 关于cc -o命令
这个命令很灵活,格式是: cc -o 目标二进制可执行文件 文件1 文件2 文件3 ..... 其中目标文件后面的文件,可为源代码,也可为二进制文件,也可为库文件 比如: //a.c #include ...
- 【金色】种瓜得瓜,种豆得豆 Gym - 102072H (线段树)
题目链接:https://cn.vjudge.net/problem/Gym-102072H 题目大意:中文题目 具体思路:通过两棵线段树来维护,第一棵线段树来维护当前坐标的点的日增长速度(默认每一年 ...
- D - 文理分科 HYSBZ - 3894(最小割)
题目链接:https://cn.vjudge.net/contest/281959#problem/D 题目大意:中文题目 具体思路: 首先说一下最小割:在最小代价的前提下,删除一些边之后,能够使得整 ...
- 对HUAWEI-ManagedProvisioning的一次不完整分析
分析思路 关注点1:AndroidManifest.xml是Android应用的入口文件,包含有APP服务的权限.广播和启动位置. 关注点2:涉及到修改系统的函数,setWifiEnabled().I ...
- Python中的exec、eval使用实例
Python中的exec.eval使用实例 这篇文章主要介绍了Python中的exec.eval使用实例,本文以简洁的方式总结了Python中的exec.eval作用,并给出实例,需要的朋友可以参考下 ...