基本上,我需要做的是在不知道行索引是什么的情况下更新数据表中的记录。因此,我通过搜索数据表列中的值来获得行索引。
我在互联网上搜索过,但我不明白为什么我现在的代码只更新数据表中的第一条记录,即使我搜索的值在第二行。我做错了什么?
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;