ストアドのOutputパラメータの文字数について
ストアドでVarchar型でOutputのパラメータを受け取ろうとしていましたが、
桁数の指定が漏れていたため1桁しか返してこなかった話。
試そうとしたコードは、以下になります。
Dim conn As SqlClient.SqlConnection
Dim comm As New SqlClient.SqlCommand
comm.Connection = conn
Dim sSQL As String = "ストアド"
comm.CommandText = sSQL
comm.CommandType = CommandType.StoredProcedure
comm.Parameters.Clear()
comm.Parameters.Add("@Input変数", SqlDbType.Int).Direction = ParameterDirection.ReturnValue
comm.Parameters.Add("@Output変数", SqlDbType.Varchar).Direction = ParameterDirection.Output
10桁ある文字数の1桁目しか返していないことから
色々調べたところ桁数の指定が必要だとのことでした。
桁数を指定して受け取ろう
以下のコードに修正しました。
comm.Parameters.Add("@Output変数", SqlDbType.Varchar, 10).Direction = ParameterDirection.Output
10という桁数を指定することで正しい文字列が返ってきました。