SqlDataAdapter 对datagridview进行增删改(A)
这种方法主要是双击datagridview单元格,直接进行添加,修改,删除,在实际开发中并不太常用,另一种方法下一次在具体陈述。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
引用
- namespace SQlCommandBuilter
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- //连接数据库字符串
- private static readonly string Constring = "server=.;database=stu;uid=sa;pwd=fiybird";
- SqlConnection con = new SqlConnection(Form1.Constring);//创建SqlConnection对象
- DataTable dt=new DataTable();//创建dataTable
- private SqlDataAdapter apt = null;//声明一个SqlDataAdapter对象
- private void Bind()
- {
- string sql = string.Format("select id,no,name,age,gender,address from stuinfo");
- apt = new SqlDataAdapter(sql, con);//实例化SqlDataAdapter
- apt.Fill(dt);//填充数据
- //SqlCommandBuilder 必不可少
- /*
- 为了生成 INSERT、UPDATE 或 DELETE 语句,SqlCommandBuilder 会自动使用 SelectCommand 属性来检索所需的元数据集。
- 如果在检索到元数据后(例如在第一次更新后)更改 SelectCommand,则应调用 RefreshSchema 方法来更新元数据。
- SelectCommand 还必须至少返回一个主键列或唯一的列。如果什么都没有返回,就会产生 InvalidOperation 异常,不生成命令。
- SqlCommandBuilder 还使用由 SelectCommand 引用的 Connection、CommandTimeout 和 Transaction 属性。
- 如果修改了这些属性中的一个或多个,或者替换了 SelectCommand 本身,用户则应调用 RefreshSchema。
- 否则,InsertCommand、UpdateCommand 和 DeleteCommand 属性都保留它们以前的值。
- 如果调用 Dispose,则会解除 SqlCommandBuilder 与 SqlDataAdapter 的关联,并且不再使用生成的命令。
- */
- SqlCommandBuilder sbBuilder=new SqlCommandBuilder(apt);
- this.dataGridView1.AutoGenerateColumns = false;//不自动生成列
- this.dataGridView1.DataSource = dt;
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- Bind();
- }
- private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- apt.Update(dt);
- MessageBox.Show("保存成功!");
- }
- private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- dt.Clear();//清空dataTable当前数据
- apt.Fill(dt);//重新填充数据
- }
- private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- //是否选中一行数据
- if (this.dataGridView1.CurrentRow.Selected)
- {
- DialogResult dr = MessageBox.Show("确定要删除么?", "友好提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
- if (dr == DialogResult.Yes)
- {
- this.dataGridView1.Rows.Remove(dataGridView1.CurrentRow);
- new SqlCommandBuilder(apt);
- apt.Update(dt);
- MessageBox.Show("删除成功!");
- }
- }
- else
- {
- MessageBox.Show("请先选中一行数据,然后在进行删除!");
- return;
- }
- }
- }
- }
SqlDataAdapter 对datagridview进行增删改(A)的更多相关文章
- 使用DataGridView进行增删改查,并同步到数据库
DataGridView控件具有极高的可配置性和可扩展性.它提供有大量的属性.方法和事件,能够用来对该控件的外观和行为进行自己定义.以下通过一个小样例来展示DataGridView进行增删改查,并同步 ...
- 浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧
通过几天的努力后,对datagridview使用作一些简要的介绍,该实例主要运用与通过对datagridview操作.对数据进行增删改查操作时,进行逻辑判断执行相关操作.简单的使用委托功能,实 ...
- Winform开发之DataGridView的增删改
DataGridView是一个非常强大的控件,用法很多.这里介绍一个简单的增删改例子. 贴效果图 右侧输入学生信息点击新增,将数据增加到数据库,并且加载到datagridview中,点击选择某条数据修 ...
- 对datagridview进行增删改(B)
create DATABASE stu ON ( name='stu.mdf', filename='F:\胡浴东\数据库\stu数据库\stu.mdf', size=, filegrowth= ) ...
- datagridview数据绑定操作数据库实现增删改查
DataSet数据集,数据缓存在客户端内存中,支持断开式连接.DataGridView控件绑定DataSet时,它自动的改变的DS的行的状态,而且在做增删改查的时候,可以借助SqlCommandBui ...
- c#操作数据库的增删改查语句及DataGridView简单使用
下面是要用户名和密码连接数据库的操作: 一.定义连接字符串,用来链接SQL Server string str_con = "server=.(服务器名称一般为 . );database=W ...
- DataSet之增删改查操作(DataGridView绑定)
DataSet数据集,数据缓存在客户端内存中,支持断开式连接.DataGridView控件绑定DataSet时,它自动的改变的DS的行的状态,而且在做增删改查的时候,可以借助SqlCommandBui ...
- winform窗体(六)——DataGridView控件及通过此控件中实现增删改查
DataGridView:显示数据表,通过此控件中可以实现连接数据库,实现数据的增删改查 一.后台数据绑定: List<xxx> list = new List<xxx> ...
- Winform(DataGridView)控件及通过此控件中实现增删改查
DataGridView:显示数据表,通过此控件中可以实现连接数据库,实现数据的增删改查 一.后台数据绑定: List<xxx> list = new List<xxx> ...
随机推荐
- SSD 相关基础知识
SDD 基础知识 SSD(Solid State Drives)是固态硬盘,使用闪存颗粒来存储数据,闪存又可分为NAND Flash和NOR Flash,通常所说的SSD硬盘都使用NAND Flash ...
- selenium在操作隐藏元素时会报错,怎么判断元素是隐藏的?
首先页面元素隐藏有五种方法: 1. opacity: 0; opacity 属性的意思是设置一个元素的透明度.它不是为改变元素的边界框(bounding box)而设计的.这意味着将 opacity ...
- Opencv4.0:遍历Mat图像空间、读取摄像头
GitHub https://github.com/gongluck/Opencv3.4-study.git #include "opencv2/opencv.hpp" using ...
- [翻译]第三天- 在 Mac 上运行 .NET Core 应用程序
原文: http://michaelcrump.net/part3-aspnetcore/ *** 简介 该系列文章的完整列表如下: 第一天 - 在 Windows 下安装和运行 .NET Core ...
- 在Asp.Net MVC中利用快递100接口实现订阅物流轨迹功能
前言 分享一篇关于在电商系统中同步物流轨迹到本地服务器的文章,当前方案使用了快递100做为数据来源接口,这个接口是收费的,不过提供的功能还是非常强大的,有专门的售后维护团队.也有免费的方案,类似于快递 ...
- Spring Cloud实践之集中配置Spring-config
将一个系统中各个应用的配置文件集中起来,方便管理. import org.springframework.boot.SpringApplication; import org.springframew ...
- 201621123018《Java程序设计》第8周学习报告
1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 contanis方 ...
- MariaDB MyCat实现读写分离(15)
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...
- iOS-项目开发1-Block
Block回顾 Block分为NSStackBlock, NSMallocBlock, NSGloblaBlock.即栈区Block,堆区Block,全局Block.在ARC常见的是堆块. 在ARC中 ...
- 2. GitHub远程仓库
1. GitHub ssh-keygen -t rsa -C "youremail@example.com" 之后再用户主目录里会有隐藏的.ssh目录,里面有id_r ...