zoukankan      html  css  js  c++  java
  • DataGridView 索引,添加列

    问题1:DataGridView绑定DataTable之后,在界面排序,选择若干行,此时选中的行的index与DataTable中的index不一致,这样若想要对其对应的行进行修改操作,将会造成错误。

    Sol: 首先将选中的DataGridView行的DataBoundItem属性转换为DataRowView, 然后通过对应的DataTable中的取出索引。

    1 DataRowView drv = dataGridView.SelectedRows[0].DataBoundItem as DataRowView;
    2 int index = dataTable.Rows.IndexOf(drv.Row);

    这是因为DataRowView对象中,有一个Row属性,获取正被查看的 DataRow,那么就可以在DataRow所在的表中找到它的索引啦。

    问题2:为什么foreach遍历DataTable或者DataGridView对行进行增删修改的操作,会造成索引错误的问题?

    Sol: 这是因为foreach循环是从第一位开始遍历,如果对某一行进行删除操作,那么该行后面的DataRow(DataGridViewRow)的索引会提前一位,也即是说,DataRow(DataGridViewRow)的index是会实时变化的,因此会出错。比如索引为3被删除,那么删除后4的索引就变成3了,又一次循环时原先索引为4的就被跳过不操作了(因为此时操作索引为4的,也即原先索引为5)。

    如果需要对行进行删除,那么要从表尾开始操作起,这样删除任一行,对前面的DataRow(DataGridViewRow)的索引就没有影响了。

    问题3:DataTable添加列之后,如何确定是否为Null或者空字符串?

    Sol: 在作判断的时候经常需要对其判断是否为Null 或者 string.Empty,如果Null和 String.Empty的处理结果是一样的,那么可以在添加列的时候,设置其DefaultValue。

    dt.Columns["a"].DefaultValue = string.Empty;
  • 相关阅读:
    常用的SQL优化
    mysql索引详细介绍
    作业2
    作业1
    python学习笔记(11)文件操作
    python学习笔记(10)函数(二)
    python学习笔记(9)函数(一)
    C#的dictionary使用总结
    常用的类型转化
    我的动态库“情节”
  • 原文地址:https://www.cnblogs.com/kingsleylam/p/2954903.html
Copyright © 2011-2022 走看看