DataSet之增删改查操作(DataGridView绑定)
DataSet数据集,数据缓存在客户端内存中,支持断开式连接.DataGridView控件绑定DataSet时,它自动的改变的DS的行的状态,而且在做增删改查的时候,可以借助SqlCommandBuilder类来完成.
SqlCommandBuilder必须执行SELECT命令来检索元数据,所以它要求多往返服务器一次,从而增加了应用程序的开销,而且操作的表必须要有主键约束。优点是自动建立insertcommand等命令
,添加操作
private void button2_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(connstring))
{
con.Open();
dapt = new SqlDataAdapter("select stucode,spcode,ctcode,stunits from stunits", con);
SqlCommandBuilder sdb = new SqlCommandBuilder(dapt);
DataSet ds1 = ds.GetChanges();
if (ds.HasChanges())
{
try
{
dapt.Update(ds, "stunit");
MessageBox.Show("保存成功", "提示");
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
} }
this.dataGridView1.AllowUserToAddRows =false;
}
)删除操作(选中整行)
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(connstring))
{
//con.Open();
StringBuilder sb =new StringBuilder();
sb.Append("delete stunits where stucode='"+this.dataGridView1.SelectedCells[].Value.ToString()+"'");
SqlCommand cmd = new SqlCommand(sb.ToString(), con);
dapt.DeleteCommand = cmd;
int rowindex = this.dataGridView1.CurrentCell.RowIndex;
ds.Tables["stunit"].Rows[rowindex].Delete();//修改行的状态
// string celltext = this.dataGridView1.SelectedCells[rowindex].Value.ToString();
// MessageBox.Show(celltext);
if(ds.HasChanges(DataRowState.Deleted))
{
try
{
dapt.Update(ds, "stunit");
MessageBox.Show("删除成功", "提示");
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
)删除操作(单击第一个单无格删除)
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == && e.RowIndex >= )
{
using (conn = new SqlConnection(con))
{
conn.Open();
StringBuilder sb = new StringBuilder();
sb.Append("delete zy_bbxmxx where 代码='" + this.dataGridView1.Rows[e.RowIndex].Cells[].Value.ToString()+"'");
//MessageBox.Show(sb.ToString());
dapt.DeleteCommand = new SqlCommand(sb.ToString(), conn);
DialogResult answer = MessageBox.Show("是否删除", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
if (answer == DialogResult.Yes)
{
try
{
ds.Tables[].Rows[e.RowIndex].Delete();//改变行的状态
dapt.Update(ds, "zy_bbxx");
MessageBox.Show("删除成功");
}
catch (SqlException ex)
{ MessageBox.Show(ex.Message);
} }
}
}
} )修改操作
private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(connstring))
{
con.Open();
//DataSet ds1 = ds.GetChanges();
dapt = new SqlDataAdapter("select stucode,spcode,ctcode,stunits from stunits", con);
SqlCommandBuilder sdb = new SqlCommandBuilder(dapt);
if (ds.HasChanges())
{
try
{
dapt.Update(ds, "stunit");
MessageBox.Show("修改成功","提示");
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
[转载]DataSet之增删改查操作(DataGridView绑定)
或者
private void btnEdit_Click(object sender, EventArgs e)
{
using (SqlConnection conn=new SqlConnection(con))
{
DataSet ds1 = ds.GetChanges();//得到修改后的DataSet
if (ds1 != null)
{
try
{
dapt = new SqlDataAdapter("select * from zy_bbxmxx", conn);
SqlCommandBuilder sb = new SqlCommandBuilder(dapt);
dapt.Update(ds,"zy_bbxx");
MessageBox.Show("修改成功"); }
catch (ArgumentNullException ex)
{
MessageBox.Show(ex.Message);
} }
}
}
)查询操作
private void textBox5_TextChanged(object sender, EventArgs e)
{
this.dataGridView2.DataSource = ds.Tables[];
DataView dv = ds.Tables[].DefaultView;
dv.RowFilter = "stucode like '" + '%' + this.textBox5.Text + '%' + "'";
this.dataGridView2.DataSource = ds.Tables[];
}
DataSet之增删改查操作(DataGridView绑定)的更多相关文章
- 浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧
通过几天的努力后,对datagridview使用作一些简要的介绍,该实例主要运用与通过对datagridview操作.对数据进行增删改查操作时,进行逻辑判断执行相关操作.简单的使用委托功能,实 ...
- C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。
1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...
- PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码
PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...
- 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作
后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...
- mongoVUE的增删改查操作使用说明
mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{& ...
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- 详谈easyui datagrid增删改查操作
转自:http://blog.csdn.net/abauch_d/article/details/7734395 前几天我把easyui dadtagrid的增删改查的实现代码贴了出来,发现访问量达到 ...
- 05_Elasticsearch 单模式下API的增删改查操作
05_Elasticsearch 单模式下API的增删改查操作 安装marvel 插件: zjtest7-redis:/usr/local/elasticsearch-2.3.4# bin/plugi ...
- JDBC连接数据库及增删改查操作
什么是JDBC?Java语言访问数据库的一种规范,是一套APIJDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类 ...
随机推荐
- shell脚本——项目1
案例名称:系统初始化 背景:10台已装有linux系统的服务器 需求: 1.设置时区同步 2.禁用selinux 3.清空防火墙策略 4.历史命令显示操作时间 5.禁止root远程登录 6.禁止定时任 ...
- pm2使用记录
linux 查找命令 (1)find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找 (2)find /etc -name 'srm' #使用通配符 ...
- 理解S12(X)架构中的地址映射方案
目录 1. 介绍 2. CPU 本地地址 3. 分页窗口 4. 内存页 5. 控制各个对象在内存中放置的位置 介绍 在一个S12或S12X架构中,很有必要分清楚两种类型的内存地址:banked和non ...
- 百度之星初赛(A)——T6
度度熊的01世界 Problem Description 度度熊是一个喜欢计算机的孩子,在计算机的世界中,所有事物实际上都只由0和1组成. 现在给你一个n*m的图像,你需要分辨他究竟是0,还是1,或者 ...
- 走近Docker
一个容器实际上就是运行在宿主机上的一个进程,这个进程以及子进程会认为自己运行在一个独立的世界里. Docker相对于其他虚拟化技术的优势在于:创建.删除容器速度快,容器运行占用开销非常小.而相对于其他 ...
- MySQL学习——基础
本文是MySQL的基础知识. Linux启动MySQL服务命令 : service mysql start Linux关闭MySQL服务命令 : service mysql stop 登录MySQL命 ...
- 3.安装OpenStack-keystone
安装keystone(控制器上安装) 使用root用户访问数据库 mysql -uroot -ptoyo123 CREATE DATABASE keystone; GRANT ALL PRIVILEG ...
- python 操作数据库1--连接、执行sql语句
#!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/11/20 16:03 # @Author : lijunjiang # @Fi ...
- 在Centos中使用goaccess查看Nginx日志
在Nginx的配置文件中配置一下access日志: log_format access ‘$remote_addr – $remote_user [$time_local] “$request” ‘‘ ...
- 通过UUID方式在fstab中挂载分区
https://blog.csdn.net/lanmolei814/article/details/45692153