Я пытаюсь запустить цикл для каждой строки в моей таблице данных, но это дает мне ошибку, поскольку я не могу изменить коллекцию для каждого цикла ... что еще я могу сделать для обновления таблицы?Как обновить DataTable в C# без для каждого цикла?
Я пытаюсь удалить повторяющиеся записи w.r.t один столбец, который название прибора и если такой выбор будет сделан на основе повторяющегося имени прибора, то просто обновить старую количество.
Вот код:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dt = new DataTable();
dt.Columns.Add("Appliance Name", typeof(string));
dt.Columns.Add("Quantity", typeof(int));
dt.Columns.Add("Day Time(Hrs)", typeof(int));
dt.Columns.Add("Backup Time(Hrs)", typeof(int));
// dt.Rows.Add("Sana", 5, 4, 3);
Session["MyDataTable"] = dt;
}
}
protected void BtnAddNext_Click(object sender, EventArgs e)
{
DataTable dtab = (DataTable)Session["MyDataTable"];
if (dtab.Rows.Count != 0)
{
foreach (DataRow r in dtab.Rows)
{
if (Convert.ToString(r["Appliance Name"]) == DDLAppName.Text)
{
int temp = Convert.ToInt32(r["Quantity"]);
r["Quantity"] = Convert.ToInt32(QtyTB.Text) + temp;
}
else
{
dtab.Rows.Add(DDLAppName.SelectedValue, Convert.ToInt32(QtyTB.Text), Convert.ToInt32(DayTymTB.Text), Convert.ToInt32(BackUpTymTB.Text));
}
}
}
else if (dtab.Rows.Count == 0)
{
dtab.Rows.Add(DDLAppName.SelectedValue, Convert.ToInt32(QtyTB.Text), Convert.ToInt32(DayTymTB.Text), Convert.ToInt32(BackUpTymTB.Text));
}
//dtab = dtab.DefaultView.ToTable(true, "Appliance Name", "Quantity", "Day Time(Hrs)", "Backup Time(Hrs)");
AllItems.DataSource = dtab;
AllItems.DataBind();
AllItems.Visible = true;
}
, что 'я' здесь ?? dtab.Rows [I]; ?? –
О, о, извините, это должен быть rowIndex, я отредактирую сообщение. –
В чем преимущество использования для цикла вместо foreach ..? – pravprab