如何通过获取数据表对象的rowindex来更新数据表中的数据行



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

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

    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();
            }
        }
    }

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

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

最新更新