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

时间:2012-01-09 19:26:55

标签: c#

基本上,我需要做的是更新数据表中的记录而不知道行索引是什么。所以我通过搜索数据表的列中的值来获取行索引。

我在互联网上搜索但我无法理解为什么我现在的代码只更新数据表中的FIRST记录,即使我正在搜索它的值在第二行。我究竟做错了什么?

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

1 个答案:

答案 0 :(得分:4)

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

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

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