この行からエラーが発生しcmd.Parameters.Append(param)
ました。よろしくお願いします。
パラメータオブジェクトが正しく定義されていません。一貫性のないまたは不完全な情報が提供されました
Public Function GetRecordDataSet(ByVal sStoreProcName As String, ByVal sParameterList As String) As ADODB.Recordset
Try
Dim cmd As ADODB.Command
Dim arrParameter, arrParamName
Dim sParamName As String
Dim sDataValue
Dim lCtr As Long
Dim param As ADODB.Parameter
GetRecordDataSet = New ADODB.Recordset
cmd = New ADODB.Command
cmd.ActiveConnection = con
cmd.CommandTimeout = 1800
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = sStoreProcName
If Not Trim(sParameterList) = "" Then
arrParameter = Split(sParameterList, "|", , vbTextCompare)
If UBound(arrParameter) >= 0 And IsArray(arrParameter) Then
For lCtr = 0 To UBound(arrParameter)
arrParamName = Split(arrParameter(lCtr), "$", , vbTextCompare)
sParamName = arrParamName(0)
sDataValue = arrParamName(1)
param = cmd.CreateParameter(sParamName, DataTypeEnum.adVarChar,
ParameterDirectionEnum.adParamInput, 200, sDataValue)
cmd.Parameters.Append(param) // from this line
param.Value = sDataValue
GetRecordDataSet = cmd.Execute
cmd = Nothing
Exit Function
Next lCtr
End If
End If
GetRecordDataSet = cmd.Execute
cmd = Nothing
Exit Function
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Function
UPDATE
に変更param.Value = sDataValue
しましたparam = sDataValue
。
エラーは次のように変更されました。
タイプ「System.String」のオブジェクトをタイプ「ADODB.Parameter」にキャストできません
これparam = sDataValue
をコードから削除します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加