- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Problema con il valore che viene restituito da stored procedures per un web method
-
Problema con il valore che viene restituito da stored procedures per un web method
Salve, sto creando una piccola chiamata ad un web method in asp.net e devo eseguire una stored procedures in Sql Server che fá praticamente un INSERT e restituisce un valore (0,-1,-2,-3,-4,-5) in caso di problemi , praticamente devo eseguire la stored e restituire a video il risultato della stored ma con questo codice mi visualizza sempre il valore -1, anche se cambio la stored il valore restituito è sempre -1 quindi c'è qualcosa che non va, suggerimenti?
Allego qui di seguito il codice :
[WebMethod] public string RegUsuario(string salutation, string firstname, string lastname, string lastname2, int companyid, int departamentoid, int cargoid, string cargodescripcion, string emailaddress, string phonenumber, string country, string state,string usuarioweb,string pwdweb,string razonsocial) { using (SqlConnection conn = new SqlConnection(datosConexion)) { conn.Open(); SqlCommand command = new SqlCommand("sp_orb_web_personAdd", conn); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("salutation", salutation); command.Parameters.AddWithValue("firstname", firstname); command.Parameters.AddWithValue("lastname", lastname); command.Parameters.AddWithValue("lastname2", lastname2); command.Parameters.AddWithValue("companyId", companyid); command.Parameters.AddWithValue("departamentoid", departamentoid); command.Parameters.AddWithValue("cargoid", cargoid); command.Parameters.AddWithValue("cargoDescripcion", cargodescripcion); command.Parameters.AddWithValue("emailAddress", emailaddress); command.Parameters.AddWithValue("phoneNumber", phonenumber); command.Parameters.AddWithValue("country", country); command.Parameters.AddWithValue("state", state); command.Parameters.AddWithValue("usuarioWeb", usuarioweb); command.Parameters.AddWithValue("pwdWeb", pwdweb); command.Parameters.AddWithValue("razonSocial", razonsocial); output = command.ExecuteNonQuery().ToString(); //output = command.ExecuteScalar().ToString(); /* IDataReader dr; dr = command.ExecuteReader(); //List each product. while (dr.Read()) { output = dr.GetString(0); } //Clean up. dr.Close(); */ //output= command.ExecuteScalar().ToString(); } return output;
Come vedete nel codice io restituisco la variabile output a video ma mi visualizza sempre un valore che non è restituito dalla stored procedures!
-
Dopo varie ore di diventare matto ho trovato la seguente soluzione : Ho dovuto passare al command tre istruzioni, quindi non come stored procedures, ho passato il risultato della stored ad una variabile e poi l' ho stampata a video, poi ho dovuto raccogliere il valore stampato tramite il comando conn.InfoMessage e l' ho pubblicato nel Web Method.
using (SqlConnection conn = new SqlConnection(datosConexion)) { conn.Open(); SqlCommand command = new SqlCommand("declare @pr int exec @pr = Sp_Orb_Web_PersonAdd '" + salutation + "','" + firstname + "','" + lastname + "','" + lastname2 + "'," + companyid + "," + departamentoid + "," + cargoid + ",'" + cargodescripcion + "','" + emailaddress + "','" + phonenumber + "','" + country + "','" + state + "','" + usuarioweb + "','" + pwdweb + "','" + razonsocial + "' print @pr", conn); conn.InfoMessage += delegate(object sender, SqlInfoMessageEventArgs e) { output += "\n" + e.Message; }; command.ExecuteNonQuery().ToString(); } valor = Int32.Parse(output);