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