在我的项目中,有两个文本框,txtName并txtPopulation和一个按钮,btnClick.每当用户单击时btnClick,数据集的"Population"列中dsDetails的值应该通过值"in txtPopulation" 更新,其中"Name"列等于txtName.我知道这可以使用rowfilter或者完成,select但我不知道要在其中实现什么.请不要linq
目前,我正在做这样的事情..(工作)
for (int intCount = 0; intCount < dsDetails.Tables[0].Rows.Count; intCount++)
{
if (lblCountryName.Text.Equals(dsDetails.Tables[0].Rows[intCount][0].ToString()))
{
dsDetails.Tables[0].Rows[intCount][3] = txtPopulation.Text;
}
}
Run Code Online (Sandbox Code Playgroud)
您需要调用.AcceptChanges()DataTable,以便将更改提交到集合,如下所示:
for (int intCount = 0; intCount < dsDetails.Tables[0].Rows.Count; intCount++)
{
if (lblCountryName.Text.Equals(dsDetails.Tables[0].Rows[intCount][0].ToString()))
{
dsDetails.Tables[0].Rows[intCount][3] = txtPopulation.Text;
}
}
dsDetails.Tables[0].AcceptChanges();
Run Code Online (Sandbox Code Playgroud)
使用选择行过滤器
您可以使用.Select行过滤器来定位列,如下所示:
foreach (DataRow row in dsDetails.Tables[0].Select("Name = '" + txtName.Text + "'"))
{
row[3] = txtPopulation.Text;
}
dsDetails.Tables[0].AcceptChanges();
Run Code Online (Sandbox Code Playgroud)