1

このコードを大幅に減らす必要がありますが、その方向を説明するSQLパラメーターを作成する方法はありますか?コードは次のとおりです。

    Dim Oparam1 As SqlParameter = New SqlParameter("@ROJO", SqlDbType.Int)
    Dim Oparam2 As SqlParameter = New SqlParameter("@AMBAR", SqlDbType.Int)
    Dim Oparam3 As SqlParameter = New SqlParameter("@AMARILLO", SqlDbType.Int)
    Dim Oparam4 As SqlParameter = New SqlParameter("@VERDE", SqlDbType.Int)
    Oparam1.Direction = ParameterDirection.Output
    Oparam2.Direction = ParameterDirection.Output
    Oparam3.Direction = ParameterDirection.Output
    Oparam4.Direction = ParameterDirection.Output
    command.Parameters.Add(Oparam1)
    command.Parameters.Add(Oparam2)
    command.Parameters.Add(Oparam3)
    command.Parameters.Add(Oparam4)

前もって感謝します。

4

3 に答える 3

2

パラメータごとに使用できます

C#

command.Parameters.Add(new SqlParameter("@name", SqlDbType.Int)
    {Direction = ParameterDirection.Output});

VB.NET

command.Parameters.Add(New SqlParameter("@name", SqlDbType.Int) With { _
    .Direction = ParameterDirection.Output _
})
于 2013-03-26T18:50:02.817 に答える
1

試す:

command.Parameters.Add(new SqlParameter("@ROJO", SqlDbType.Int) With {.Direction = ParameterDirection.Output});
于 2013-03-26T18:52:10.607 に答える
1

方向を含むコンストラクターのオーバーロードがありますが、他の多くのパラメーターを指定する必要があるため、コードが短くなることはありません。

拡張メソッドを作成できます。

Imports System.Runtime.CompilerServices

Module SqlExtensions

  <Extension()>
  Public Function SetOutput(parameter As SqlParameter) As SqlParameter
    parameter.Direction = ParameterDirection.Output
    Return parameter
  End Function

End Module

これで、パラメータでそれを使用できます。

command.Parameters.Add(New SqlParameter("@ROJO", SqlDbType.Int).SetOutput())
command.Parameters.Add(New SqlParameter("@AMBAR", SqlDbType.Int).SetOutput())
command.Parameters.Add(New SqlParameter("@AMARILLO", SqlDbType.Int).SetOutput())
command.Parameters.Add(New SqlParameter("@VERDE", SqlDbType.Int).SetOutput())
于 2013-03-26T19:00:21.027 に答える