关于如何设置dataview的选中的索引的信息

http://www.itjxue.com  2023-01-28 00:03  来源:未知  点击次数: 

dataview.findRows()是什么意思,怎么使用的

搜索 DataView:描述如何在 DataView 中查找特定行。

使用 DataView 的 Find 和 FindRows 方法,您可以按照行的排序关键字值来对行进行搜索。Find 和 FindRows 方法中的搜索值是否区分大小写取决于基础 DataTable 的 CaseSensitive 属性。搜索值必须完全匹配现有排序关键字值才能返回结果。

Find 方法返回一个整数,该整数表示匹配搜索条件的 DataRowView 的索引。如果多个行匹配搜索条件,则只返回第一个匹配 DataRowView 的索引。如果未找到匹配项,Find 将返回 -1。

若要返回匹配多个行的搜索结果,可以使用 FindRows 方法。FindRows 的工作方式与 Find 方法类似,不同的只是 FindRows 返回引用 DataView 中所有匹配行的 DataRowView 数组。如果未找到匹配项,DataRowView 数组将为空。

若要使用 Find 或 FindRows 方法,必须通过将 ApplyDefaultSort 设置为 true 或通过使用 Sort 属性来指定排序顺序。如果未指定排序顺序,则将引发异常。

以下代码显示对具有单个列排序顺序的 DataView 调用的 Find 方法。

[Visual Basic]

Dim custView As DataView = New DataView(custDS.Tables("Customers"), "","CompanyName", DataViewRowState.CurrentRows)

Dim rowIndex As Integer = custView.Find("The Cracker Box")

If rowIndex = -1 Then

Console.WriteLine("No match found.")

Else

Console.WriteLine("{0}, {1}",custView(rowIndex)("CustomerID").ToString(), custView(rowIndex)("CompanyName").ToString())

End If

[C#]

DataView custView = new DataView(custDS.Tables["Customers"], "", "CompanyName", DataViewRowState.CurrentRows);

int rowIndex = custView.Find("The Cracker Box");

if (rowIndex == -1)

Console.WriteLine("No match found.");

else

Console.WriteLine("{0}, {1}",custView[rowIndex]["CustomerID"].ToString(),custView[rowIndex]["CompanyName"].ToString());

如果 Sort 属性指定多个列,则必须按 Sort 属性指定的顺序为每个列传递包含搜索值的对象数组,如以下代码示例所示。

[Visual Basic]

Dim custView As DataView = New DataView(custDS.Tables("Customers"), "", "CompanyName, ContactName", DataViewRowState.CurrentRows)

Dim foundRows() As DataRowView = custView.FindRows(New object() {"The Cracker Box", "Liu Wong"})

If foundRows.Length = 0 Then

Console.WriteLine("No match found.")

Else

Dim myDRV As DataRowView

For Each myDRV In foundRows

Console.WriteLine("{0}, {1}", myDRV("CompanyName").ToString(), myDRV("ContactName").ToString())

Next

End If

[C#]

DataView custView = new DataView(custDS.Tables["Customers"], "","CompanyName, ContactName",DataViewRowState.CurrentRows);

DataRowView[] foundRows = custView.FindRows(new object[] {"The Cracker Box", "Liu Wong"});

if (foundRows.Length == 0)

Console.WriteLine("No match found.");

else

foreach (DataRowView myDRV in foundRows)

Console.WriteLine("{0}, {1}", myDRV["CompanyName"].ToString(), myDRV["ContactName"].ToString());

c# 在dataview中添加行~索引超出范围~~

int m = dataGridView1.CurrentRow.Index;

应该是这个等于-1的原因

是不是dgvr没有初始化?

需要先对dgvr初始化,还有SelectedRows换成rows

DataGridViewRow dgvr = dataGridView1.Rows[0].Clone() as DataGridViewRow;

int m = dataGridView1.CurrentRow.Index;

for (int i = 0; i dataGridView1.ColumnCount; i++)

{

dgvr.Cells[i].Value = dataGridView1.Rows[m].Cells[i].Value;

}

dataGridView1.Rows.Add(dgvr);

MessageBox.Show("add success!");

c# datagridview 如何选中行,以及怎么获取选中行的数据

C#如何获取DataGridView对象单元格的内容,这里介绍下获取方法。

1、首先需要在事件列表中找到DataGridView对象的CellClick事件。

2、然后在此事件中,会有DataGridCiewCellEventArgs事件变量e。

3、此时便能利用DataGridCiewCellEventArgs事件变量e的RowIndex属性获得行索引,但是我们需要加1。

4、并且还能通过CurrentCellAddress属性组的X和Y坐标,也是能够获得行列索引。

在foreach中怎么的到DataRowView索引?

这个样子不行的,

你要做成这样。。。

DataView dv = new DataView();

DataRowView drv;

for(int i=0;idv.Count;i++)

{

drv=dv[i]; //这样获得每个DataRowView,同时i就是对应的index(索引值)

}

如何实现dataGridView中点击某个单元后,自动选中整列

一个DataGridView控件的列选中如果数据是死的话,就是程序运行前DataSource已经绑定的话,只要吧SelectionMode

设置为ColumnHeaderSelect就好了,但是如果是动态的话,这样做是不行的,会抛出SortMode不能为automaic(自动的)的异常。那么下面这个函数就解决了这个问题。还有要吧datagridview的selectionMOde设置为RowHeaderSelet才行。

public void setDataGridView(DataTable

dt)

{

dataView.DataSource =

dt;

int

count =

dataView.Columns.Count;

for (int i = 0; i count;

i++)

{

dataView.Columns[i].SortMode =

DataGridViewColumnSortMode.Programmatic;

}

dataView.SelectionMode =

DataGridViewSelectionMode.ColumnHeaderSelect;

}

(责任编辑:IT教学网)

更多

推荐通讯数据软件文章