RSS

Monthly Archives: November 2021

Dynamically Datatable Create Adding and Deleting Rows & Reset Serial Number C#


First, we create a data table Runtime That we call on Load Event

DataTable Dt_Test = new DataTable();
DataTable LoadTestDataTables()
{

        Dt_Test.Columns.Add("SerialNo", typeof(int));
        Dt_Test.Columns.Add("TestType", typeof(string));
        Dt_Test.Columns.Add("TestID", typeof(int));

        Dt_Test.Columns.Add("TestName", typeof(string));


        return Dt_Test;
    }

We Will create a function That check record exist if already added

private Boolean RowRecordExist(DataTable dt, int RowID)
{
Boolean Result = false;

        foreach (DataRow recRow in dt.Select())
        {
                if (Convert.ToInt32(recRow["TestID"]) == RowID)
                {


                    Result = true;
                }

        }

        return Result;

    }

           

On Save Click Event

if (Dt_Test.Rows.Count > 0)
{
if (!RowRecordExist(Dt_Test, Convert.ToInt32(TestID), 2, TestType))
{
DataRow workRow = Dt_Test.NewRow();
workRow[“SerialNo”] = Dt_Test.Rows.Count + 1;
workRow[“TestType”] = TestType;
workRow[“TestID”] = TestID;
workRow[“TestName”] = testTitle;
Dt_Test.Rows.Add(workRow);
LoadGridTest(Dt_Test);

}
else
{

            XtraMessageBox.Show("Record Exist!", "Validate!", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
    else
    {
        DataRow workRow = Dt_Test.NewRow();
        workRow["SerialNo"] = Dt_Test.Rows.Count + 1;
        workRow["TestType"] = TestType;
        workRow["TestID"] = TestID;
        workRow["TestName"] = testTitle;
        Dt_Test.Rows.Add(workRow);
        LoadGridTest(Dt_Test);


    }
           private void LoadGridTest(DataTable tbl)
        {
            GrdTest.DataSource = tbl;
        }

Row Delete Event

    private void repositoryItemHyperTestRowDelete_Click(object sender, EventArgs e)
    {
        int ID;
        DevExpress.XtraGrid.Views.Grid.GridView view = default(DevExpress.XtraGrid.Views.Grid.GridView);
        view = gvtest;
        ID = Convert.ToInt32(view.GetRowCellValue(view.FocusedRowHandle, "SerialNo"));
        foreach (DataRow recRow in Dt_Test.Select())
        {
                if (Convert.ToInt32(recRow["SerialNo"])==ID)
                {
                Dt_Test.Rows.Remove(recRow);                
            }              
        }
        Dt_Test.AcceptChanges();
        ResetRowID(Dt_Test);
        LoadGridTest(Dt_Test);
    }

Row Delete to Reset Serial Number of Datatable

private void ResetRowID(DataTable dt)
{
int rowNumber = 1;
if (dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
row[0] = rowNumber;
rowNumber++;
}
}
}

 
Leave a comment

Posted by on November 1, 2021 in Uncategorized