在我的项目中,有两个textBox,txtName
和txtPopulation
以及一个Button btnClick
。每当用户点击btnClick
时,数据集dsDetails
的“人口”列中的值应按txtPopulation
中的值更新,其中“名称”列等于{{ 1}}。我知道这可以使用txtName
或rowfilter
来完成,但我不知道要在其中实现什么。 请不要linq
目前,我正在做这样的事情..(工作)
select
答案 0 :(得分:8)
您需要在DataTable上调用.AcceptChanges()
,以便将更改提交到集合,如下所示:
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();
使用选择行过滤器
您可以使用.Select
行过滤器定位您的列,如下所示:
foreach (DataRow row in dsDetails.Tables[0].Select("Name = '" + txtName.Text + "'"))
{
row[3] = txtPopulation.Text;
}
dsDetails.Tables[0].AcceptChanges();
答案 1 :(得分:2)
DataRow[] dr = dsDetails.Tables[0].Select("Something='"+lblCountryName.Text+"'");
if(dr.Length > 0)
{
dr[0][0] = "ChangeValue";//Datarow is reference to datatable it will automatically update the datatable values
}
dsDetails.Tables[0].AcceptChanges();