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绑定)的更多相关文章

  1. 浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧

        通过几天的努力后,对datagridview使用作一些简要的介绍,该实例主要运用与通过对datagridview操作.对数据进行增删改查操作时,进行逻辑判断执行相关操作.简单的使用委托功能,实 ...

  2. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...

  3. PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码

    PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...

  4. 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作

    后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...

  5. mongoVUE的增删改查操作使用说明

    mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{& ...

  6. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  7. 详谈easyui datagrid增删改查操作

    转自:http://blog.csdn.net/abauch_d/article/details/7734395 前几天我把easyui dadtagrid的增删改查的实现代码贴了出来,发现访问量达到 ...

  8. 05_Elasticsearch 单模式下API的增删改查操作

    05_Elasticsearch 单模式下API的增删改查操作 安装marvel 插件: zjtest7-redis:/usr/local/elasticsearch-2.3.4# bin/plugi ...

  9. JDBC连接数据库及增删改查操作

    什么是JDBC?Java语言访问数据库的一种规范,是一套APIJDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类 ...

随机推荐

  1. 《c程序设计语言》-2.10 不用if-else 转换大小写

    #include <stdio.h> int lower(char a) { int b; b = (a >= 'A' && a <= 'Z') ? (a - ...

  2. CF888E Maximum Subsequence (Meet in the middle,贪心)

    题目链接 Solution Meet in the middle. 考虑到 \(2^{35}\) 枚举会超时,于是分成两半枚举(尽量平均). 然后不能 \(n^2\) 去匹配,需要用到一点贪心: 将数 ...

  3. Redis安装 java中的连接 序列化 反序列化

    安装路径 /webapp/redis/redis- #启动redis /webapp/redis/redis-/src/redis-server & #关闭redis /webapp/redi ...

  4. Poj 2096 Collecting Bugs (概率DP求期望)

    C - Collecting Bugs Time Limit:10000MS     Memory Limit:64000KB     64bit IO Format:%I64d & %I64 ...

  5. sql 取一张表的全部外键

    select a.name as 约束名, object_name(b.parent_object_id) as 外键表, d.name as 外键列, object_name(b.reference ...

  6. 昨天用到的一个sql查询。可取处,用max

    SELECT T_AssetInfos_ID, MAX(T_AssetConstruct_Name), MAX(T_AssetProperties_Name), SUM(CAST(PropertyVa ...

  7. 使用select2插件并添加拼音首字母检索

    项目中要使用下拉检索的时候要支持拼音首字母.本来拼音可以写后台,这里放前台了. 放代码 1. pinyin.js ,最后为了使用方便,直接为string对象添加了扩展方法 /* File Create ...

  8. Oracle clob 操作

    --Oracle clob 操作 -- Created on 2015/4/8 by TianPing declare -- Local variables here v_clob1 Clob; v_ ...

  9. 第2章 掌握C++

    参考: https://blog.csdn.net/u014162133/article/details/46573873 1.C++主要特点: 封装性(Encapsulation):把数据与操作数据 ...

  10. Linux进程管理与调度-之-目录导航【转】

    转自:http://blog.csdn.net/gatieme/article/details/51456569 版权声明:本文为博主原创文章 && 转载请著名出处 @ http:// ...