Hi, I've read a bit in this forum, and it looks like a great resource! Here's a question that someone asked before, but I think my answer may be different:

My client uses only Access databases (I know, I know) and I'm getting this error.

System.Data.OleDb.OleDbException: Too few parameters. Expected 5.
Here's the vb code:

Public Overrides Function SwitchProjectUserID(ByVal userId, ByVal SwitchUserId) As Integer
' validate input
If userId Is Nothing Then
Throw New ArgumentNullException("UserID")
End If
If userId <= 0 Then
Throw New ArgumentOutOfRangeException("UserID")
End If
' Execute SQL Command
Dim sqlCmd As New OleDbCommand
AddParamToSQLCmd(sqlCmd, "@UserId", OleDbType.Integer, 0, ParameterDirection.Input, userId )
AddParamToSQLCmd(sqlCmd, "@SwitchUserId", OleDbType.Integer, 0, ParameterDirection.Input, SwitchUserId)

SetCommandType(sqlCmd, CommandType.StoredProcedure, SP_USER_SWITCHPROJECTUSERID)
ExecuteScalarCmd(sqlCmd)
Return True
End Function

Here's the "query" in the access database (which came with the IssueTracker starter kit from asp.net)

UPDATE IssueTracker_ProjectMembers, IssueTracker_Projects SET UserID = [@SwitchUserID], IssueTracker_Projects.ProjectCreator = [@SwitchUserID], IssueTracker_Projects.ProjectManager = [@SwitchUserID]
WHERE UserId=[@UserId] And [IssueTracker_Users].[UserDisabled]=0;

Someone elsewhere in these forums mentioned Access getting confused by "too many brackets". I presume in the procedure. I removed those brackets, but they come back as soon as I close the Access database. (this isn't a procedure in my vb code, but a "query" in the access DB).

Can anyone help?

Thanks
David

Hi,

Have u created Function :
ExecuteScalarCmd...?

I think it shud be
sqlCmd.ExecuteScalar()

Regards
Veena

This article has been dead for over six months. Start a new discussion instead.