1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

delete a row in dataset

Discussion in 'C#' started by markyjj, Jul 6, 2006.

  1. markyjj

    markyjj New Member

    Joined:
    Dec 7, 2005
    Messages:
    19
    Likes Received:
    0
    Trophy Points:
    0
    I was hoping that someone could assist me in the following.

    I have created a dataset in c# and have bound this to a datagrid and I want to delete a row in the datatable in the dataset.

    I know how to add a row to the dataset but am unsure of how to delete a row. I want to delete a row by using the unique ID number but I am unsure of how to do this.

    Can I use the indexof operator to obtain the index of the row in the datatable?

    I am not using an adapter as the datasource is based on xml.

    I would be grateful of any advice.
     
  2. shabbir

    shabbir Administrator Staff Member

    Joined:
    Jul 12, 2004
    Messages:
    15,292
    Likes Received:
    365
    Trophy Points:
    83
    Use datarow.delete and then use AcceptChanges to commit the delete.
     
  3. markyjj

    markyjj New Member

    Joined:
    Dec 7, 2005
    Messages:
    19
    Likes Received:
    0
    Trophy Points:
    0
    I am currently trying to use the delete method and then the accept changes method but am having problems.

    I am trying to locate a row in the datatable to delete but am not sure how to go about this. I have decided to use a for loop to iterate through the datatable until a match is found with the entered ID number. However, when the matching ID number is found, the code that I use to delete the found row doesnt seem to work. I get a thrown exception saying that the row at position (n)does not exist in the table and the datagrid on the form goes blank.

    The code that I am using to try to delete the found row is shown below.
    Code:
    int RowCount = 0;
    foreach(DataRow dr in mydataset.Tables[1].Rows) 
    {     
        RowCount ++;
        if (txtStudID.Text == dr[0].ToString())
        {
            mydataset.Tables[1].Rows[RowCount].Delete();
            mydataset.WriteXml("C://Student1.xml");
            mydataset.WriteXmlSchema("C://Student1.xml");            
        }
    } //end of for loop      
    mydataset.Tables[1].Rows[RowCount].AcceptChanges();          
    f2.dataGrid1.DataSource = mydataset;    
    return;
    Any help will be very much appreciated.
     
  4. shabbir

    shabbir Administrator Staff Member

    Joined:
    Jul 12, 2004
    Messages:
    15,292
    Likes Received:
    365
    Trophy Points:
    83

Share This Page