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

The error(too few parameters)occurs-when number of datafields are less compared to fields in the database...
,,,,,

check fot the number of parameters that is required to call the priocedure and pass them as required.

Hi,

Have u created Function :
ExecuteScalarCmd...?

I think it shud be
sqlCmd.ExecuteScalar()

Regards
Veena