Reputation: 37
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
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