C# 如何通过获取datatable对象的rowindex来更新datatable中的datarow?

C# 如何通过获取datatable对象的rowindex来更新datatable中的datarow?,c#,C#,基本上,我需要做的是在不知道行索引是什么的情况下更新数据表中的记录。因此,我通过搜索datatable列中的值来获得行索引 我在互联网上搜索过,但我不明白为什么我现在的代码只更新数据表中的第一条记录,即使我搜索的值在第二行。我做错了什么 private void SaveBtn__Click(object sender, EventArgs e) { if (SUpdateReq_Grd.SelectedRows.Count > 0) {

基本上,我需要做的是在不知道行索引是什么的情况下更新数据表中的记录。因此,我通过搜索datatable列中的值来获得行索引

我在互联网上搜索过,但我不明白为什么我现在的代码只更新数据表中的第一条记录,即使我搜索的值在第二行。我做错了什么

    private void SaveBtn__Click(object sender, EventArgs e)
    {
        if (SUpdateReq_Grd.SelectedRows.Count > 0)
        {
            if (MySkills_dataTable.Rows.Count > 0)
            {
                 string SkillID = SkillID_Txt.Text;
                 string Proficiency = Proficiency_Cmb.SelectedItem.ToString();
                 string Yrs_Exp = YrsExperience_cmb.SelectedItem.ToString();

                 //find rowIndex of skill id    
                 DataRow[] Rows = MySkills_dataTable.Select("SkillID='"+ SkillID + "'");

                MySkills_dataTable.Rows[0]["Proficiency"] = Proficiency;
                MySkills_dataTable.Rows[0]["Yrs_Experience"] = Yrs_Exp;

                MySkills_dataTable.AcceptChanges();
            }
        }
    }

我认为应该使用
变量来设置新值,而不是完整的数据表:

//find rowIndex of skill id    
DataRow[] Rows = MySkills_dataTable.Select("SkillID='"+ SkillID + "'");

Rows[0]["Proficiency"] = Proficiency;
Rows[0]["Yrs_Experience"] = Yrs_Exp;

我认为应该使用
变量来设置新值,而不是完整的数据表:

//find rowIndex of skill id    
DataRow[] Rows = MySkills_dataTable.Select("SkillID='"+ SkillID + "'");

Rows[0]["Proficiency"] = Proficiency;
Rows[0]["Yrs_Experience"] = Yrs_Exp;

您正在显示的此代码驻留在..的哪个事件中。。?您希望查看e…..参数,并通过获取单元格行来选择。已选择。。这只是一个sudo解释,但希望看到您所输入的真实方法/事件。您不是要更新选定的行[0]而不是MySkills_dataTable.Rows[0]?@DJKRAZE不应该硬编码什么?SkillID是一个变量,我试图得到它所在的行。并获取indexWhat事件您正在显示的代码驻留在。。?您希望查看e…..参数,并通过获取单元格行来选择。已选择。。这只是一个sudo解释,但希望看到您所输入的真实方法/事件。您不是要更新选定的行[0]而不是MySkills_dataTable.Rows[0]?@DJKRAZE不应该硬编码什么?SkillID是一个变量,我试图得到它所在的行。并获取索引这是正确的解决方案,但是如果
返回多个数据行,则仅更新第一行。这是正确的解决方案,但是如果
返回多个数据行,则仅更新第一行。