C# 如何按单元格值从tableadapter获取行索引?

C# 如何按单元格值从tableadapter获取行索引?,c#,wpf,C#,Wpf,我想学习按单元格值的行索引。我知道单元格值“E003”。我如何学习行索引,该行包含单元格值“E003”?我需要7点而不是11点 var table =TableAdapter.GetData(); var resultRow = table.Rows["I need row index. But I know just cell value"]; 根据需要,您可以这样查询var table=TableAdapter.GetData() 通过搜索具有给定值的数据表来查找行的索引 下面几行显示了

我想学习按单元格值的行索引。我知道单元格值“E003”。我如何学习行索引,该行包含单元格值“E003”?我需要7点而不是11点

var table =TableAdapter.GetData();
var resultRow = table.Rows["I need row index. But I know just cell value"]; 
根据需要,您可以这样查询
var table=TableAdapter.GetData()

通过搜索具有给定值的数据表来查找行的索引 下面几行显示了如何通过某行的主键查找该行的索引。首先从DataTable中获取一个值,然后可以使用Find()方法按给定值搜索行

DataRowCollection rowCol = GetDataTable().Rows; 
rowCol.Dump("Content for RowCollection: ");
// find row by value of primary key
// for it to work Emp_Code as to be set as primary key column
DataRow foundRow = rowCol.Find("E003"); 

int indexOfRow = rowCol.IndexOf(foundRow);
indexOfRow.Dump("zero based RowIndex is: ");
底层数据看起来与您的屏幕截图相似

private DataTable GetDataTable()
{
   DataTable table = new DataTable("NameIsOptional");
   table.Columns.Add(new DataColumn("Emp_Id", typeof(int)));
   table.Columns.Add(new DataColumn("Emp_Code", typeof(string)));
   table.Columns.Add(new DataColumn("L_Name", typeof(string)));
   // set Column 'Emp_Code' as primary key column
   table.PrimaryKey = new DataColumn[] {table.Columns["Emp_Code"]};

   table.Rows.Add(1, "E001", "dave");
   table.Rows.Add(2, "E002", "mandle");
   table.Rows.Add(3, "E007", "sarana");
   table.Rows.Add(4, "E004", "poyekar");
   table.Rows.Add(5, "E005", "suryawanshi");
   table.Rows.Add(9, "E006", "survey");
   table.Rows.Add(11, "E003", "singh");

   return table;
}
由于您对列
Emp_code
很少提及,因此我假设它可以用作数据表的主键

linqpad演示程序的屏幕截图 下面您可以看到上面在linqpad中执行的代码


如果您不能使用
Emp\u code
作为主键,您可以在问题中找到所需的信息

我今天发现了这样一个孤岛

            var table = TableAdapter.GetData().Select(s => new { s.Index })
                                  .AsEnumerable()
                                  .Select((s, counter) => new
                                  {
                                      s.Index,
                                      counter = counter + 1

                                  });

            foreach (var item in table)
            {
                if (item.Index == Emp_ID)
                {                        
                    //do something

                    break;
                }
            }

我理解如下:
var table=TableAdapter.GetData()
返回一个dataTable。返回一个数据行数组。
Select()
的参数看起来像是一个
s=>new{s.Index}
,尽管这个lambda中的
new
让我感到困惑,我无法弄清楚lambda表达式
s=>new{s.Index}
是什么类型,或者它是做什么的。在Linqpad中尝试代码会返回错误。你能解释一下你的答案如何与你的问题相吻合,以获得Datagrid的rowIndex吗?