0
我想在我的数据表中的每一行运行循环,但它给了我错误,因为我无法修改每个循环中的集合...我还能做什么来更新表?如何在不使用每个循环的情况下更新C#中的DataTable?
我试图删除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,我会编辑帖子。 –
使用for循环代替foreach有什么优势? – pravprab