TIL

Today I Learned. 知ったこと、学んだことを書いていく

パラメーター化クエリ 'xxxx' に必要なパラメーター 'yyyy' が指定されていません。 - VB.NET

これはsqlCmd.Parameters.Add()でパラメータを追加するときの値がNothingとかを設定してしまうと、エラーになってしまう。

なので、DbNull.Valueを設定する

sqlCmd.Parameters.Add("@xxx", SqlDbType.Char).Value = DBNull.Value
''' <summary>
''' Nothingの場合、DBNull.Valueを返す
''' </summary>
''' <param name="obj">試す値</param>
''' <returns>Nothingの場合、DBNull.Value。Nothingではない場合、そのままの値を返す</returns>
Public Function GetDBNullValueIfNothing(ByVal obj As Object) As Object

    If IsNothing(obj) Then
        Return DBNull.Value
    Else
        Return obj
    End If

End Function

参考文献