Your code is incorrect because you can't define the same name for your types:
try this:
SPListItem item1 = list.GetItemById(1);
SPListItem item2 = list.GetItemById(2);
SPListItem item3 = list.GetItemById(3);
Or:
Or update each one by sending the id to a specific function:
public void updateMyRow(int id){
SPWeb web = SPContext.Current.Web;
SPList list = web.Lists["MyList"];
SPListItem item = list.GetItemById(id);
item["Title"] = TextBox_Name.Text;
item["ProductNumber"] = TextBox_ProdNum.Text;
item["ListPrice"] = TextBox_ListPrice.Text;
item["Color"] = TextBox_Color.Text;
item["More Info"] = TextBox_MoreInfo.Text;
item.SystemUpdate(false);
list.Update();
}
Call the function like this:
for(int id=1;id<4;id++){
updateMyRow(id);