2012-04-29 141 views
4

これは少し古い内容ですが、プロシージャから値を返すためにSQL Serverでストアドプロシージャを作成する方法を私に説明できる人が必要です。例:SQL ServerストアドプロシージャとVB.NETで実行

SELECT NAME, ADDRESS 
FROM CUSTOMER 
WHERE IDCUSTOMER = 'DS212'; 

次に、顧客名と住所が必要です。

私はストアドプロシージャとして作成し、VB.NETで実行する方法を示す必要があります。おそらく名前がLABEL1.TEXTにプロンプ​​トされ、アドレスがLABEL2.TEXTにプロンプ​​トされると仮定します。

私はリターンを使用して、このSQL-Serverのストアドプロシージャを改善しましたが、私はそれを

CREATE PROCEDURE inserting_customer 
      @custId varchar(10), 
      @usr_id int 
AS 
BEGIN 
SET @usr_id = (SELECT MAX(SUBSTRING(CUSTOMER.idCustomer,3, LEN(CUSTOMER.IDCUSTOMER))) FROM CUSTOMER 
WHERE 
SUBSTRING(CUSTOMER.idCustomer,1,2) = @custId) 
END 
RETURN @usr_id 
GO 

これは私のVB.NET

あなたがこれを持っていると仮定すると
conn.Open() 

     Dim cmd As New SqlCommand("inserting_customer", conn) 

     Try 
      cmd.CommandType = CommandType.StoredProcedure 
      cmd.Parameters.Add("@custId", SqlDbType.VarChar) 
      cmd.Parameters("@custId").Value = "YW" 
      cmd.Parameters.Add("@usr_id", SqlDbType.Int) 
      cmd.Parameters("@usr_id").Value = 0 
      cmd.ExecuteNonQuery() 
     Finally 
      If cmd IsNot Nothing Then cmd.Dispose() 
      If conn IsNot Nothing AndAlso conn.State <> ConnectionState.Closed Then conn.Close() 
     End Try 
+1

簡単な検索で質問にお答えします... –

+0

少し説明すると、Googleよりもずっと助けになるかもしれません。私はその努力を知っていますが、おそらく私は複雑なGoogleよりも簡単なコードを探しています:)前にありがとう –

答えて

17

あるを実行した後、私は返すことは何もありませんsproc in sqlserver

CREATE PROCEDURE GetNameAddress(@custID nvarchar(10)) 
as 
BEGIN 
SELECT NAME,ADDRESS FROM CUSTOMER WHERE IDCUSTOMER = @custID; 
END 

あなたはそれを呼び出して標準的な方法で結果を得ます

sprocが返すレコードが1つまたは1つであると予想される場合は、これが標準的な方法です。複数のレコードがある場合は、SqlDataReader.Readメソッドでwhileループを使用し、返されたレコードを格納するコントロールを提供する必要があります。

+2

この回答を尊重してください!構文と明確な説明を含めてくれてありがとう!神はあなたを祝福します... LOVE THIS –

+0

私はこの問題を抱えています –

関連する問題