Which is a better way to pass a parameter to mysql procedure

I am using two ways for passing parameters to MySql DB. The first one is passing normal input and out put parameter like what we do in SQL and the other one is through XML

XElement xl = new XElement("root",
new XAttribute("OType", "Insert"),
new XAttribute("Target", "UserEntry"),
new XElement("AffiliateCode",code ),
new XElement("ud_firstname", txt_FirstName.Text),
new XElement("ud_midname", txt_MidName.Text),
new XElement("ud_lastname", txt_LstName.Text),
new XElement("ud_countryid", ddl_Country.SelectedValue),
new XElement("ud_stateid", ddl_State.SelectedValue),
new XElement("ud_cityid", ddl_City.SelectedValue),
new XElement("ud_sr_id", serviceId),
new XElement("ud_tp_id", ddlPlan.SelectedValue),
new XElement("ud_emailid", txt_Email.Text),
new XElement("ud_address", txt_Address.Text),
new XElement("ud_zipcode", txt_ZipCode.Text),
new XElement("ProofType", ddlIdProof.SelectedValue),
new XElement("ProofSubType", SubIdType),
new XElement("IdProofNo", txtProofNo.Text),
new XElement("ud_IdProofFile", "idProof/" + fileName),
new XElement("ud_phnno", PhnoneNo),
new XElement("UserDOB", ddlYear.SelectedValue + "-" + Months + "-" + Days),
new XElement("UserCode", Session["usercode"].ToString()));

In this way i can extract all the parameters by binding them to a single object and can extract inside procedure as per my need.

which one is a better way.