我正在尝试通过存储过程将数据插入数据库:
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指定了太多参数。'
有人知道解决方案吗?
答案 0 :(得分:3)
您继续向现有SQLCommand对象添加参数。
尝试制作一个新的
...
cmd = New SqlClient.SqlCommand
cmd.Connection = con
或清除现有参数:
cmd.Parameters.Clear()
cmd = New SqlClient.SqlCommand
cmd.Connection = con
我希望放置在“使用-最终使用”块中的新对象。