Récupération d'une valeur de return d'une procédure stockée dans un MsgBox

J'ai une connection dans Visual Studio à SQL Server, je veux exécuter une procédure de stockage et récupérer la valeur de return dans une boîte de message, mais je ne sais pas comment.

Je viens d'get ceci:

entrez la description de l'image ici

Le SqlConnection fonctionne bien, évidemment le problème est dans les dernières lignes:

Dim myConnNAC As New SqlConnection("Initial Catalog=Northwind;Data Source=SERVERNAC\KANTAR;Initial Catalog=NACDroid;Persist Security Info=True;User ID=xxxxxx;Password=xxxxxx;") Dim cmd As New SqlCommand cmd.CommandText = "NACDRoid_actualiza_domicilios" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = myConnNAC myConnNAC.Open() Dim returnValue As Object returnValue = cmd.ExecuteReader.ToSsortingng() MsgBox(returnValue) 

Directement dans SQL Server lorsque j'ai exécuté la procédure de magasin show 0 comme valeur de return si c'est OK, c'est ce dont j'ai besoin dans le MsgBox.

entrez la description de l'image ici

 cmd.ExecuteReader.ToSsortingng 

Qu'est-ce que ça fait? Eh bien, la première moitié de la déclaration est exécutée

 cmd.ExecuteReader 

qui renvoie une instance de ce type

derp

(lire le text dans l'image) Et puis il appelle ToSsortingng sur cette instance. L'implémentation par défaut de ToSsortingng renvoie le nom du type. Comme dans "System.Data.SqlClient.SqlDataReader" .

Vous devez utiliser le lecteur pour get datatables de la database. Voici les documents MSDN pour cette opération simple.

Généralement, si vous récupérez une seule valeur à partir d'une database à l'aide d'ADO, vous devez searchr une petite méthode nommée ExecuteScalar sur l'object de command.

Si vous voulez simplement récupérer une seule valeur, utilisez le

SqlCommand.ExecuteScalar, méthode

au lieu de ExecuteReader .