datagridview 列索引

     2023-02-23     182

关键词:

【中文标题】datagridview 列索引【英文标题】:datagridview column index 【发布时间】:2011-09-30 21:01:08 【问题描述】:

我有一个带有DataGridView 小部件的表单,我需要获取具有所选名称的列的索引。

例如,假设我有一个包含 2 列的表:姓名、姓氏。我需要一种方法来获取列名的索引。问题是它一直根据DataSource 而变化,但该列始终具有相同的名称“名称”。

有谁知道如何解决这个问题?

【问题讨论】:

【参考方案1】:

我发现使用列对象的 Name 属性比使用列名作为字符串更安全,因为这样可以在将来进行更一致的代码重构。

datagridview1.Columns[column1.Name].Index;

此外,重要的是首先确保该列不为空,并且正如其他人所说,它包含在 datagridview 中。

【讨论】:

【参考方案2】:

在代码下面创建一个静态类

public static class MyTools

    public static int IndexByName(this DataGridView dgv, string name)
    
        foreach(DataGridViewColumn col in dgv.Columns)
        
            if(col.HeaderText.ToUpper().Trim() == name.ToUpper().Trim())
            
                return col.Index;
            
        
        return -1;
    

然后用你的 dataGridView 调用它

int index = datagridview1.IndexByName("columnName");

【讨论】:

【参考方案3】:

可以通过the Index property of the DataGridViewColumn widget获取索引,如下:

ColumnName.Index

这避免了在运行时检查列名是否有效的需要,因为如果列不存在则会产生编译错误。这也使重构更容易。

我建议您给列起一个合理的名称(例如DCOL_SomeName),以便您可以轻松区分它们。如果您在同一个表单上有多个 DataGridView 小部件,包括 DataGridView 小部件的名称会有所帮助。

【讨论】:

【参考方案4】:

要按名称检索DataGridView 列,您只需通过列集合索引器引用它:

datagridview1.Columns["columnName"]

然后就可以从该列获取列索引:

datagridview1.Columns["columnName"].Index;

请注意,如果您使用无效的列名,则此引用将返回 null,因此您可能需要在使用之前检查列引用不为 null,或者先使用列集合 .Contains() 方法。

【讨论】:

为了安全起见(对于其他用户),您应该首先检查该列是否存在:datagridview1.Columns.Contains("ColumnName") @ginalster 谢谢 - 好点,我已将其添加到答案中。【参考方案5】:

如果我是对的,e.ColumnIndex 也可以解决这个问题。你可以查看 MSDN 文档 here

【讨论】:

c#winform编程数据库.net怎么获取datagridview中选中列的列索引?

DataGridView的默认事件(在设计器中双击后默认生成的事件)CellContentClick中可以很容易获取列索引  private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)    int rowIndex =&... 查看详情

2 列索引与 3 列索引的性能方面

】2列索引与3列索引的性能方面【英文标题】:2columnindexvs3columnindexperformance-wise【发布时间】:2020-01-0411:18:51【问题描述】:背景:假设我有一个名为mytable的表,其中包含以下列:ID(唯一)user_id(字符串)creation_date(日期)... 查看详情

pandas使用read_csv函数读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用方括号[]基于最外层列索引名称索引列数据

 pandas使用read_csv函数读取csv数据、index_col参数指定作为行索引的数据列索引列表形成复合(多层)行索引、header参数指定作为列索引的行索引列表形成复合(多层)列索引、使用方括号[]基于最外层列索引名称索引列数据 查看详情

无效的列索引,使用 PreparedStatement 更新

】无效的列索引,使用PreparedStatement更新【英文标题】:Invalidcolumnindex,updateusingPreparedStatement【发布时间】:2012-03-1204:35:08【问题描述】:我正在使用PreparedStatement更新表格以下代码完美运行pst=conn.prepareStatement("UPDATEplayjdbcSETjlname=... 查看详情

(WPF Datagrid)如何确定项目的列索引

】(WPFDatagrid)如何确定项目的列索引【英文标题】:(WPFDatagrid)HowdoIdeterminetheColumnIndexofanItem【发布时间】:2011-06-1816:48:58【问题描述】:当我单击一个单元格时,如何返回WPF数据网格中项目的列索引我正在使用VisualStudio2010/VB.Net... 查看详情

无效的列索引错误 - 无法解决问题

】无效的列索引错误-无法解决问题【英文标题】:InvalidColumnIndexError-Unabletoresolvetheissue【发布时间】:2012-09-2115:10:02【问题描述】:这就是我的XML的样子。所有定义的属性都定义了各自的getter和setter。在尝试了各种建议后,我无... 查看详情

jooq 记录在获取数据时是不是使用列索引?

】jooq记录在获取数据时是不是使用列索引?【英文标题】:Doesjooqrecordusecolumnindexeswhenfetchingdata?jooq记录在获取数据时是否使用列索引?【发布时间】:2021-12-2320:00:19【问题描述】:我正在调查一个问题,我们看到与jooq试图填充... 查看详情

如何在 dplyr 中按列索引分组

】如何在dplyr中按列索引分组【英文标题】:howtogroupbyoncolumnindexindplyr【发布时间】:2018-03-0811:08:11【问题描述】:我有一个场景,我在一个变量中获取列索引,我必须按该变量进行分组和汇总col_index<-which(sapply(dataframe,function(x... 查看详情

如何修复列索引超出范围 SQLException

】如何修复列索引超出范围SQLException【英文标题】:HowtofixColumnIndexoutofrangeSQLException【发布时间】:2013-06-1622:10:23【问题描述】:当我传递一个查询时,我遇到了错误。ErrornoisNilErrorStringIsQueryProblem.....java.sql.SQLException:ColumnIndexouto... 查看详情

PreparedStatement 中的列索引无效

】PreparedStatement中的列索引无效【英文标题】:InvalidcolumnindexinpreparedStatement【发布时间】:2014-12-1118:22:39【问题描述】:我正在尝试在数据库表中插入一个值,但一直遇到InvalidColumnIndex错误。这是一个代码示例:StringinsertNewAlarmS... 查看详情

如何使用 jQuery 获取表列索引?

】如何使用jQuery获取表列索引?【英文标题】:HowtogettablecolumnindexusingjQuery?【发布时间】:2013-05-1023:47:30【问题描述】:我对jQuery及其用法有足够的了解,但今天我遇到了使用jQuery在table的th元素中获取匹配标签的列索引的麻烦... 查看详情

从多个列索引创建多行

】从多个列索引创建多行【英文标题】:Createmultiplerowsfromseveralcolumnindexes【发布时间】:2022-01-0801:31:20【问题描述】:请问您能帮帮我吗?这是我的原始数据集的结构:Country20202021EcuadorValue1Value2CanadaValue1Value2我想得到这个结构... 查看详情

MySQL 问题:列索引!

】MySQL问题:列索引!【英文标题】:MySQLquestion:Indexesoncolumns!【发布时间】:2009-10-2016:00:15【问题描述】:我有一个MySQL问题我有两个表(帖子和作者),是一对多的关系(因为每个帖子都是由一个作者写的,一个作者可以写多... 查看详情

如何按列索引重命名列?

】如何按列索引重命名列?【英文标题】:Howtodplyrrenameacolumn,bycolumnindex?【发布时间】:2017-08-0319:47:03【问题描述】:以下代码重命名数据集中的第一列:require(dplyr)mtcars%>%setNames(c("RenamedColumn",names(.)[2:length(names(.))]))期望的结... 查看详情

列索引超出范围:1,列数:0

】列索引超出范围:1,列数:0【英文标题】:Thecolumnindexisoutofrange:1,numberofcolumns:0【发布时间】:2016-08-0212:40:20【问题描述】:我更新了UPSERT_DELETE_JOB_COUNTERS。现在我认为“upsert”适用于新的查询=)或者你怎么看?问候,彼得`priv... 查看详情

熊猫:从多级列索引中删除一个级别?

】熊猫:从多级列索引中删除一个级别?【英文标题】:Pandas:dropalevelfromamulti-levelcolumnindex?【发布时间】:2014-04-0914:53:17【问题描述】:如果我有一个多级列索引:>>>cols=pd.MultiIndex.from_tuples([("a","b"),("a","c")])>>>pd.Data... 查看详情

PHPOffice/PhpSpreadsheet 获取单元格列索引为整数

】PHPOffice/PhpSpreadsheet获取单元格列索引为整数【英文标题】:PHPOffice/PhpSpreadsheetgetcellcolumnindexasinteger【发布时间】:2018-09-2815:26:09【问题描述】:如何将单元格列索引设为整数?我已经搜索了文档,但没有找到任何东西。【问题... 查看详情

pandas读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用set_index函数把数据列转化为行索引(keys参数指定需要被转化的层列索引)

pandas使用read_csv函数读取csv数据、index_col参数指定作为行索引的数据列索引列表形成复合(多层)行索引、hea 查看详情