C# 如何通过获取datatable对象的rowindex来更新datatable中的datarow?
基本上,我需要做的是在不知道行索引是什么的情况下更新数据表中的记录。因此,我通过搜索datatable列中的值来获得行索引 我在互联网上搜索过,但我不明白为什么我现在的代码只更新数据表中的第一条记录,即使我搜索的值在第二行。我做错了什么C# 如何通过获取datatable对象的rowindex来更新datatable中的datarow?,c#,C#,基本上,我需要做的是在不知道行索引是什么的情况下更新数据表中的记录。因此,我通过搜索datatable列中的值来获得行索引 我在互联网上搜索过,但我不明白为什么我现在的代码只更新数据表中的第一条记录,即使我搜索的值在第二行。我做错了什么 private void SaveBtn__Click(object sender, EventArgs e) { if (SUpdateReq_Grd.SelectedRows.Count > 0) {
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是一个变量,我试图得到它所在的行。并获取索引这是正确的解决方案,但是如果
行
返回多个数据行,则仅更新第一行。这是正确的解决方案,但是如果行
返回多个数据行,则仅更新第一行。