How to update a dataset

2019-02-20 04:54发布

In my project, there are two textBoxes, txtName and txtPopulation and a Button, btnClick. whenever the user clicks btnClick, the value in the "Population" column of the dataset dsDetails should get updated by the value in txtPopulation, where the "Name" Column is equal to txtName. I know this can be done using rowfilter or select but I have no idea what to implement in it. Please no linq

enter image description here Currently, I am doing something like this..(working)

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;
    }
}

标签: c# dataset
2条回答
走好不送
2楼-- · 2019-02-20 05:12

You need to call .AcceptChanges() on your DataTable so your changes are committed to the collection, like this:

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();

Using select row filter

You can target your column by using the .Select row filter, like this:

foreach (DataRow row in dsDetails.Tables[0].Select("Name = '" + txtName.Text + "'"))
{
    row[3] = txtPopulation.Text;
}

dsDetails.Tables[0].AcceptChanges();
查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-02-20 05:30
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();
查看更多
登录 后发表回答