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语言中的接口和类 ...
随机推荐
- 向mysql中批量插入数据的性能分析
MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下 CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 5 ...
- Disable or enable the IPv6 protocol in Red Hat Enterprise Linux
Resolution Red Hat Enterprise Linux 4, 5 and 6 enable Internet Protocol Version 6 (IPv6) by default. ...
- 转 android Listview,gridview局部刷新,部分刷新 (仿QQ动态评论局部刷新)
转自:http://blog.csdn.net/jdsjlzx/article/details/45582719 众所周知Listview和Gridview的刷新界面的方式是调用adapter.not ...
- 树形结构JSON的实现方法
在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项.目前市场上常见的JavaScript框架及组件库中均包含自己的树 ...
- C# 代码片段
StringBuilder拼接小技巧 Stopwatch watch = new Stopwatch(); watch.Start(); var sb = new StringBuilder(); ; ...
- go环境安装
选择想要安装的版本: http://golangtc.com/download tar -zxf go1.8.linux-amd64.tar.gz cp -R go/ /usr/local/ vi / ...
- 华为上机测试题(大数相乘-java)
PS:这个不是自己写的,测试OK,供参考. /** * 大数相乘 */ public class BigData { public static void main(String[] args) { ...
- CPU负载监控
#!/usr/bin/python #-*- encoding: utf-8 -*- import os import time while True: loadavg=os.popen(" ...
- Win32环境下代码注入与API钩子的实现(转)
本文详细的介绍了在Visual Studio(以下简称VS)下实现API钩子的编程方法,阅读本文需要基础:有操作系统的基本知识(进程管理,内存管理),会在VS下编写和调试Win32应用程序和动态链接库 ...
- 中控考勤机WEB主动上报接收SERVER程序
using System; using System.IO; using System.Net; using System.Text.RegularExpressions; namespace Con ...