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:
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.
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
(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
.