DataGridView绑定DataTable的正确姿势
1. 将DataTable 绑定到BindingSource
2. 将BindingSource绑定到DataGridView
3. DataGridView修改完要从Datatable取值时,同步过去时,BindingSource和DataGridView两个都要执行EndEdit()
例程:
public partial class Form1 : Form
{
DataTable mTable = new DataTable();
BindingSource mbs = new BindingSource();
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
mTable.Columns.Add("Name",typeof(string));
mTable.Columns.Add("Age", typeof(float));
mTable.Columns.Add("Dept", typeof(string));
mTable.Columns.Add("IsDeleted", typeof(bool));
mTable.Rows.Add("Jack", , "C1", false);
mTable.Rows.Add("Rose", , "C2", false);
mTable.Rows.Add("Tom", , "C1", false);
mTable.Rows.Add("Micky", , "C1", false);
mTable.Rows.Add("Steven Chou", , "C1", false);
mbs.DataSource = mTable;
grd.DataSource = mbs;
} private void BtnDel_Click(object sender, EventArgs e)
{
mTable.Rows.Remove(mTable.Rows[grd.CurrentRow.Index]);
} private void BtnSave_Click(object sender, EventArgs e)
{
grd.EndEdit();
mbs.EndEdit(); int N = mTable.Rows.Count; }
}
DataGridView绑定DataTable的正确姿势的更多相关文章
- angularJs绑定select的正确姿势
最近在项目中使用ionic,需要在页面上绑定一个年份下拉框,默认选中当前年,并且在下拉框的change事件中增加一些业务逻辑. 不管是使用ng-repeat还是ng-options,都是各种坑:默认选 ...
- c# DataGridView绑定DataTable对象之后总会多一行
DataGridView 属性 AllowUserToAddRows = false
- [WinForm] DataGridView 绑定 DT && ComboBox 列绑定 Dict
一 需求介绍 一般像枚举类型的数据,我们在数据库里存储着诸如(1.2.3.4-)或者("001"."002"."003"-)此类,但是界面 ...
- C# Winform中DataGridView绑定后DataGridViewCheckBoxColumn无法显示的问题
在控件DataGridView绑定数据源后,发现DataGridViewCheckBoxColumn不能显示当前的check值.经过一番努力,现将完整代码奉献出来,仅供参考. 错误代码: /*禁止自动 ...
- C# DataGridView绑定数据源的几种常见方式
开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1. 简单的数据绑定 例1 using (SqlConnection conn = new SqlConnect ...
- DataGridView 绑定 List
DataGridView 绑定 List<T> 不会自动更新 正确方式是将 List<T> 设置为 BindingList<T> 即可 (双向绑定)
- DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法
有时候我们须要在控件中绑定DataTable中设定条件过滤后的数据,此时,在winForm环境中,一些控件不能正确绑定并显示数据内容.这是由于DataTable.Select()返回的是DataRow ...
- DataGridView绑定数据源
给DataGridView绑定数据源比較简单,方法主要有两种: 1.直接在控件属性中绑定数据源,这样的方法最简单,但它是直接连接数据库的,这样就和传DataTable的后果差点儿相同了,所以还是尽量避 ...
- Taro 多端开发的正确姿势:打造三端统一的网易严选(小程序、H5、React Native)
笔者所在的趣店 FED 早在去年 10 月份就已全面使用 Taro 框架开发小程序(当时版本为 1.1.0-beta.4),至今也上线了 2 个微信小程序.2 个支付宝小程序. 之所以选用 Taro, ...
随机推荐
- 22个Photoshop网页设计教程网站推荐
这些网站都会经常更新一些优秀且高质量的Web界面设计教程.如果你热爱网页设计并且经常搜集各种界面设计教程,那么你一定要把下面这些网站收藏起来. 您还可以参考以下网页设计相关教程及资源:<Web ...
- js正则表达式常见面试题
1 . 给一个连字符串例如:get-element-by-id转化成驼峰形式. var str = "get-element-by-id"; var reg = /-\w/g; / ...
- redis通过命令传参以及主从复制
config set appendonly yes 临时生效 如果想永久生效的话,执行 config rewrite 并不是所有的都支持修改 config set bind ip 修改bind参 ...
- InsightFace源码以及pre-train模型以及使用
一下摘自:https://blog.csdn.net/Fire_Light_/article/details/79602705 论文链接:ArcFace: Additive Angular Margi ...
- 【学术篇】SDOI2008 山贼集团
今天一月一号.. 突然想安利一波我的中二的2017总结... 传送门1:codevs 传送门2:luogu 时限5s和1s的区别(你没看我传送门都给的大牛分站了) 现在不仅线筛.. 有负数的快读都打不 ...
- event.target.tagName
html中 event.target.tagName 中的tagName属性他返回的就是元素标签的大写名称 例如标签他的tagName就是EM 所以用大写 记住:在 HTML 中,tagName 属性 ...
- vue better-scroll 下拉上拉,加载刷新
_initScroll(){ this.$nextTick(() => { if (!this.scroll) { ...
- thinkphp 定界符
模板文件可以包含普通模板标签和XML模板标签,标签的定界符都可以重新配置. 大理石平台厂家 普通标签 内置模板引擎的普通模板标签默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果 ...
- DEDE采集时自动生成摘要和关键字
1.修改 include/dedecollection.class.php //自动分析关键字和摘要 preg_match("/<meta[\s]+name=['\"]key ...
- elasticsearch+filebeat+kibana提取多行日志
filebeat的配置文件filebeat.yml以下三行去掉注释 multiline.pattern: ^\[ multiline.negate: true //false改为true multil ...