Вставка данных через хранимую процедуру возвращает ошибку «для многих заданных аргументов» - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь вставить данные в свою базу данных с помощью хранимой процедуры:

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 и AIAaronInsertQ.Вот хранимая процедура 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 голосов
/ 20 ноября 2018

Вы продолжаете добавлять параметры в существующий объект SQLCommand.

Попробуйте создать новый:

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

или очистите существующие параметры:

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

Iбудет иметь предпочтение для нового объекта, помещенного в блок Using - End Using.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...