Can anybody see why this add new row isn't working?

Code:
		public void dg_Insert(Object s, DataGridCommandEventArgs e) 
		{	
			if (e.CommandName == "Insert")
			{
				DataSet ds = new DataSet();
				ds.ReadXml(Server.MapPath("wineList.xml"));

				DataTable dt = new DataTable("wines");
				DataRow dr;

				dt = ds.Tables["wines"];
			
				// add new wine 
				dr = dt.NewRow();
				dr["name"] = ((TextBox)e.Item.FindControl("txtNewName")).Text;
				dr["coo"] = ((TextBox)e.Item.FindControl("txtNewCoo")).Text;
				dr["BT"] = ((TextBox)e.Item.FindControl("txtNewBT")).Text;
				dr["ml"] = ((TextBox)e.Item.FindControl("txtNewMl")).Text;
				dr["type"] = ((TextBox)e.Item.FindControl("txtNewType")).Text;
				dr["id"] = GetNextNodeID() + 1;
				dt.Rows.Add(dr);


				DataGridWine.DataSource = ds.Tables["wines"];
				DataGridWine.DataBind();

				ds.WriteXml(Server.MapPath("wineList.xml"));


			}

		}
I get an error at this line: dt.Rows.Add(dr);

Code:
System.NullReferenceException: Object reference not set to an instance of an object.