我有一个拥有客户和推销员的人员表。通过ParentID将每个客户分配给销售员。即,客户父母ID是Salesmans的个人ID。 IndividualID是主键。我写了一个存储的Proc,它接受IndividualID和ParentID。 我需要遍历2个数据网格,它们都有复选框,然后将选定的客户分配给选定的销售人员。 (基本上说,选定的客户新的ParentID被选中Salesman的IndividualID) Anywya,我试图在1个按钮点击事件中循环浏览2个数据网格并获取ParentID和IndividualID。但是我在第二个foreach循环中的变量下得到了波浪线。这是我的代码:
protected void imgbtnReassgin_Click(object sender, ImageClickEventArgs e)
{
//loop 1st gv
foreach (GridViewRow row in gvCustomer.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("chkitemSelectorCustomers");
if (cb != null && cb.Checked)
{
GridViewRow r = gvCustomer.SelectedRow;
int oldParentID = Convert.ToInt32(r.Cells[2]);
int oIndividualID = Convert.ToInt32(r.Cells[0]);
}
} // loop 2nd gv
foreach (GridViewRow row in gvSalesman.Rows )
{
CheckBox chkBox = (CheckBox)row.FindControl("chkitemSelectorAllManagersandSalesman");
if (chkBox != null && chkBox.Checked)
{
GridViewRow ro = gvReassignCustomers.SelectedRow;
int oNewParentID = Convert.ToInt32(ro.Cells[1]);
// Assign old ParentID to Salesmans ID//
oNewParentID = oldParentID;
// Call stored proc Update Customer with New ParentID//
Individual ind = new Individual();
ind.ReassignIndividual(oIndividualID, oNewParentID);
}
}
}
答案 0 :(得分:1)
oldParentID
和oIndividualID
变量在第一个foreach中声明,在第二个foreach中访问,这是不允许的,因为它们的范围在第一个foreach中。
尝试在foreach循环之外声明它们。代码将编译,但我不确定它是否会解决您的更新。
答案 1 :(得分:1)
如果您有嵌套循环,则它们在第二个嵌套循环GridViewRow row
中使用相同的变量名称,它们不能具有相同的变量名。