okim doing and update on a dataset which is to return menu information

everything works fine but when updated it only saves the first symbol to the database

heres the update method on the main class

Code:
		public void UpdateDGMI(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			intCName0 =(int)(dgUMenuItems.DataKeys[e.Item.ItemIndex]);

			System.Web.UI.WebControls.TextBox cName1 = new System.Web.UI.WebControls.TextBox();
			cName1 = (System.Web.UI.WebControls.TextBox) e.Item.FindControl("txtMenuItems");

			strCName = cName1.Text.ToString();

			System.Web.UI.WebControls.TextBox cName2 = new System.Web.UI.WebControls.TextBox();
			cName2 = (System.Web.UI.WebControls.TextBox) e.Item.FindControl("txtPriceRange");

			strCName2 = cName2.Text.ToString();

			System.Web.UI.WebControls.TextBox cName3 = new System.Web.UI.WebControls.TextBox();
			cName3 = (System.Web.UI.WebControls.TextBox) e.Item.FindControl("txtDescription");

			strCName3 = cName3.Text.ToString();

			dgUMenuItems.EditItemIndex = -1;
			mi.UpdateMenuItems(strCName, strCName2, strCName3, intCName0);
			
			BindDataDG();
		}
heres my update command in my custom class

Code:
		
public void UpdateMenuItems(string strCName, string strCName2, string strCName3, int intCName0)
		{
			sqlconn.ConnectionString=ConfigurationSettings.AppSettings["ConnectionString"];//connection string in the configuration settings
			SqlCommand UpdateMItems = new SqlCommand("spUpdateMenu",sqlconn);
			UpdateMItems.CommandType = CommandType.StoredProcedure;

			UpdateMItems.Parameters.Add(new SqlParameter("@ID",SqlDbType.Int, 4));
			UpdateMItems.Parameters["@ID"].Value = intCName0;

			UpdateMItems.Parameters.Add(new SqlParameter("@ItemName",SqlDbType.NVarChar, 40));
			UpdateMItems.Parameters["@ItemName"].Value = strCName;

			UpdateMItems.Parameters.Add(new SqlParameter("@PriceRange",SqlDbType.NVarChar));
			UpdateMItems.Parameters["@PriceRange"].Value = strCName2;

			UpdateMItems.Parameters.Add(new SqlParameter("@Description",SqlDbType.NVarChar,195));
			UpdateMItems.Parameters["@Description"].Value = strCName3;
			oconn();
			UpdateMItems.ExecuteNonQuery();
			cconn();
		}
		public void dsAcceptChanges()
		{
		Getds().AcceptChanges();
		}
		void oconn(){sqlconn.Open();}
		void cconn(){sqlconn.Close();}
		public DataSet Getds() { return dsUI; }
		public string strtable() { return strtbl; }

	}
so i was just wondering why it only puts one symbol in the database?