Recuperare parametro da Stored Procedure

giovedì 11 dicembre 2014 - 15.54
Tag Elenco Tags  C#  |  .NET 3.5  |  Windows Vista  |  Visual Studio Express  |  SQL Server Express

MaxMag Profilo | Newbie

Salve a tutti.
Applicativo in c# express 2010 ed SQL Server Express 2008
Ho il seguente metodo di inserimento e aggiornamento che chiama la stored procedure e recupera il valore del codice articolo:
public object InsUpReturn(string strSql, SqlParameter[] p, short Pos)
{
object Esito = null; this.PopolaParametri(p);
try
{
this.apriConn();
this.Cmd.CommandText = strSql; this.Cmd.ExecuteNonQuery(); Esito = this.Cmd.Parameters[Pos].Value;
this.Mt.Commit();
}
catch (System.Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message); this.Mt.Rollback();
}
finally { this.Cmd.Parameters.Clear(); this.aConn.Close(); }
return Esito;
}

Il parametro @cod da recuperare (ParameterDirection.InputOutput) è nvarchar (20). Il codice articolo viene generato direttamente nella stored procedure.
Durante l'update, se la lunghezza del parametro è > di 0 mi restituisce il codice passato. Se al parametro gli assegno una stringa vuota (string.Empty) pur generando un codice articolo di 10 caratteri mi ritorna sempre la lunghezza di 1. Ho trovato un raggiro passando una stringa di 20 spazi vuoti. Possibile che un parametro nvarchar (20) che riceve in ingresso una stringa vuota si inizializzi ad nvarchar (1)?

0v3rCl0ck Profilo | Guru

Ciao Massimo, per favore formatta il codice, altrimenti di solito difficilmente qualcuno prenderà in carico il thread, di fatto chiudendolo ancora prima di leggerlo, perchè troppo incasinato, non indentato ecc... in altre parole, aiutaci che noi ti aiutiamo

per formattare il codice mantenendo l'indentazione non devi fare altro che racchiudere il codice tra [code ] [/code ] senza spazio prima della parentesi ]


grazie,
Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

MaxMag Profilo | Newbie

Grazie della dritta, cmq ho già risolto. dovevo inizializzare la dimensione del nvarchar da c# al momento della dichiarazione.

0v3rCl0ck Profilo | Guru

ok nessun problema, grazie per avere avvisato che hai risolto la cosa, per favore accetta un post per chiudere definitivamente il thread.


un saluto,
Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5