通过存储过程插入数据会返回“指定的许多参数”错误

时间:2018-11-20 20:07:51

标签: database vb.net

我正在尝试通过存储过程将数据插入数据库:

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()

基本上,当有人在tBoxQuestion1和tBoxAnswer1 / tBoxAnswer2中输入文本,然后单击“完成”时,它将通过存储过程“ AIAaronInsertA”和“ IAAaronInsertQ”将文本上传到我的数据库中。这是AIAaronInsertA存储过程:

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

其他存储过程几乎相同。但是,当我单击“完成”时,会出现此错误:

  

System.Data.SqlClient.SqlException:'过程或函数AIAaronInsertA指定了太多参数。'

有人知道解决方案吗?

1 个答案:

答案 0 :(得分:3)

您继续向现有SQLCommand对象添加参数。

尝试制作一个新的

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

或清除现有参数:

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

我希望放置在“使用-最终使用”块中的新对象。