将dataGridView中的添加/删除等修改保存至数据库
C#示例代码如下:
using System.Data;
using System.Data.SqlClient;
public partial class Form1 : Form
{
DataSet ds =new DataSet();
SqlDataAdapter da=new SqlDataAdapter();
SqlCommandBuilder cb=new SqlCommandBuilder();
SqlCommand cmd=new SqlCommand();
private string sql = "select * from TEST_Table";
private string connString = "Data Source=.;User ID=sa;Password=123;Initial Catalog=Test;";
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(connString);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
// cmd = conn.CreateCommand();
// cmd.CommandText = "select * from TEST_Table";
// SqlDataAdapter da = new SqlDataAdapter(cmd);
// private string tableName = "test";
//da.Fill(ds, "test");
//dataGridView1.DataSource = ds.Tables[tableName];
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
private void button1_Click(object sender, EventArgs e) //保存修改
{
SqlConnection conn = new SqlConnection(connString);
cmd = conn.CreateCommand();
cmd.CommandText = "select * from Test_Table";
SqlDataAdapter da = new SqlDataAdapter(cmd);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Update(ds);
dataGridView1.Update();
}
}
--------------------------------------------------------------------------------------结束
保存的重点就在于使用了SqlCommandBuilder 成员,SqlCommandBuilder 成员的说明如下:
备注
SqlDataAdapter 不会自动生成实现 DataSet 的更改与关联的 SQL Server 实例之间的协调所需的 Transact-SQL 语句。但是,如果设置了 SqlDataAdapter 的 SelectCommand 属性,则可以创建一个 SqlCommandBuilder 对象来自动生成用于单表更新的 Transact-SQL 语句。然后,SqlCommandBuilder 将生成其他任何未设置的 Transact-SQL 语句。
一旦设置 DataAdapter 属性,SqlCommandBuilder 就将其自身注册为 RowUpdating 事件的侦听器。一次只能将一个 SqlDataAdapter 与一个 SqlCommandBuilder 对象(或相反)互相关联。
为了生成 INSERT、UPDATE 或 DELETE 语句,SqlCommandBuilder 会自动使用 SelectCommand 属性来检索所需的元数据集。如果在检索元数据后(例如在第一次更新后)更改 SelectCommand,则应调用 RefreshSchema 方法来更新元数据。
SelectCommand 还必须至少返回一个主键列或唯一的列。如果什么都没有返回,就会产生 InvalidOperation 异常,不生成命令。
SqlCommandBuilder 还使用由 SelectCommand 引用的 Connection、CommandTimeout 和 Transaction 属性。如果修改了任何这些属性或者替换了 SelectCommand 本身,用户则应调用 RefreshSchema。否则,InsertCommand、UpdateCommand 和 DeleteCommand 属性将保留它们以前的值。
如果调用 Dispose,则会解除 SqlCommandBuilder 与 SqlDataAdapter 的关联,并且不再使用所生成的命令。
将dataGridView中的添加/删除等修改保存至数据库相关推荐
- 隐藏添加删除程序中的程序在控制面板中的“添加/删除程序”项
隐藏添加删除程序中的程序在控制面板中的"添加/删除程序"项是我们要卸载程序一个程序最彻底的地方.但很多时候为了防止自己安装的程序不被别人卸载,我们希望能够在"添加/删除程 ...
- 彻底解决Fedora 6 中的添加删除与升级(转自网上)
彻底解决Fedora 6 中的添加删除与升级 [作者:syd168] Fedora给广大Linux爱好者提供了很好的锻炼机会.但Fedora每次的发行版本都存在这样那样的问题.这不,刚安装完的系统,没 ...
- php修改新闻分类代码,完整的新闻无限级分类代码,可添加,删除,移动,修改
//连接数据库教程 $link = mysql教程_connect('localhost','root','密码') or die(mysql_error()); mysql_select_db('s ...
- Krpano全景:在javascript中动态添加/删除/修改(位置)热点(向后端写入)
目录 接下来看在JS中的方法: 1.手动添加热点(点击图上添加点) 2.查找热点 3.修改热点 4.删除热点 其他方法 作为管理员,在管理全景时会涉及到各个标签的操作,本篇文章介绍在JS中对热点的操作 ...
- Krpano学习:在javascript中动态添加/删除/修改(位置)热点(向后端写入)
作为管理员,在管理全景时会涉及到各个标签的操作,本篇文章介绍在JS中对热点的操作,其数据可传到后端并写入数据库. 首先先给一个在xml文件中的动态热点添加的方法,下面的代码直接把两个url图片换了就可 ...
- linux打理ftp用户,Linux中如何添加/删除FTP用户并设置权限
在linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被设置用户名为test.被限制路径为/home/test 2.创建建用户:在root用户下: userad ...
- SQL2K数据库开发七之表操作添加删除和修改列
1.在已有的表中添加.删除和修改列可以使用Transact-SQL中的ALTER TABLE语句,使用ALTER TABLE语句的语法为: 2.在SQL Server查询分析器中输入如下语句,往Pro ...
- WPS中编辑Word删除内容之后保存退出了如何恢复?
目录 一.问题简述 二.Word用户(场景一) 情况一:删除了内容没有退出文档 情况二:删除了内容退出文档 情况三:删除了文件退出文档 三.Wps用户(场景二) 情况一:删除了内容没有退出文档 情况二 ...
- 结合前段修改mysql表数据_jquery实现点击文字可编辑并修改保存至数据库
这个方法网上可以查到很多,但是好多只有点击文字编辑并保持,但是没有完整的代码写怎么保存到数据库.因为本人才疏学浅,费啦好长时间才写好把修改的内容只用一条sql语句保存到数据库,今天在这里和大家分享 这 ...
最新文章
- Bicolor软件 中 GATB
- ML之Xgboost:利用Xgboost模型对数据集(比马印第安人糖尿病)进行二分类预测(5年内是否患糖尿病)
- Python基础教程:连接列表的八种方法,你都知道吗?
- “你们对编程和头发一无所知。”
- 递增输出链表结点,删除重复结点
- Bootstrap3 Font Awesome 字体图标带边框的图标
- Mycat 不适应场景
- storyboard 苹果启动图_iOS LaunchScreen.storyboard启动图更新
- 一、annotation
- 没事学学docker(二):本地Centos7和阿里云服务器安装docker及其解决安装出现的问题
- 网页版-抽签程序源码
- Linux各类日志查看
- (附源码)Python学生兼职平台系统 毕业设计 160938
- 【数学模型】基于Volterra理论的捕食模型
- Qt Creator实现动画效果(单个动画)
- 下面哪个不是python常用的开发工具_Python程序员常用的IDE和其它开发工具
- 2.4 线性丢番图方程
- 五,华为路由器单臂路由配置子接口dot1.q
- python根据经纬度转换详细地址_基于python实现地址和经纬度转换
- win7蓝屏_紧急通知!Win7电脑集体蓝屏,错误代码F4