基本上,我需要做的是更新数据表中的记录而不知道行索引是什么。所以我通过搜索数据表的列中的值来获取行索引。
我在互联网上搜索但我无法理解为什么我现在的代码只更新数据表中的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();
}
}
}
答案 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;