Aaron York
Aaron York

Reputation: 37

Inserting data through a stored procedure returns 'to many arguments specified' error

I am trying to insert data into my database through a stored procedure:

Dim connectionString As String
connectionString = ConfigurationManager.ConnectionStrings("AIConnectionString").ConnectionString.ToString()
Dim cmd As New SqlClient.SqlCommand
Dim con As New SqlClient.SqlConnection(connectionString)
con.Open()
cmd.Connection = con
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "AIAaronInsertQ"
cmd.Parameters.Add(New SqlParameter("@Questions", tBoxQuestion1.Text))
cmd.ExecuteNonQuery()
con.Close()
con.Open()
cmd.Connection = con
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "AIAaronInsertA"
cmd.Parameters.Add(New SqlParameter("@Answers", tBoxAnswer1.Text))
cmd.ExecuteNonQuery()
con.Close()

Basically when someone enters text into tBoxQuestion1 and tBoxAnswer1/tBoxAnswer2 and they click 'done', it will upload the text into my database through the stored procedures 'AIAaronInsertA, and AIAaronInsertQ. Here is the AIAaronInsertA Stored procedure:

USE [AIAaronDatabase]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[AIAaronInsertA] 
(
    @Answers varchar(200)
)
AS
begin
    insert into AIAnswers
    (
        Answers
    )
    values
    (
        @Answers
    )
end
GO

The other stored procedure is is almost identical. But when I click 'done' it gives me this error:

System.Data.SqlClient.SqlException: 'Procedure or function AIAaronInsertA has too many arguments specified.'

Anyone know a solution to this?

Upvotes: 0

Views: 25

Answers (1)

LarsTech
LarsTech

Reputation: 81610

You keep adding parameters to the existing SQLCommand object.

Try making a new one:

...
cmd = New SqlClient.SqlCommand
cmd.Connection = con

or clear the existing parameters:

cmd.Parameters.Clear()
cmd = New SqlClient.SqlCommand
cmd.Connection = con

I would have a preference for a new object placed in a Using - End Using block.

Upvotes: 3

Related Questions