过程或函数spUpdateDomain指定了太多参数。 [英] Procedure or function spUpdateDomain has too many arguments specified.
问题描述
当我第一次插入成功插入数据SQL服务器并且第二次插入成功但第二次创建问题时,会出现此问题。
问题是过程或函数spUpdateDomain指定了太多参数
我的代码是。
C#代码是
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = spcontactInsert;
cmd.Parameters.AddWithValue( @ ContactName,UserName.Text);
cmd.Parameters.AddWithValue( @ ContactAddress,Address.Text);
cmd.Parameters.AddWithValue( @ ContactEmail,email);
cmd.Parameters.AddWithValue( @ PhoneNumber,phone);
cmd.Parameters.AddWithValue( @ FirstMobNumber,FirstNumber.Text);
cmd.Parameters.AddWithValue( @ SecondMobNumber,SecendNumber.Text);
cmd.Parameters.AddWithValue( @ ThirdMobNumber,txt.Text);
con.Open();
cmd.Connection = con;
int i = cmd.ExecuteNonQuery();
con.Close();
SQL Store程序代码
ALTER PROCEDURE [dbo]。[spcontactInsert]
@ContactName nvarchar(50),
@ContactAddress nvarchar(50),
@ContactEmail nvarchar(50),
@PhoneNumber nvarchar(50),
@FirstMobNumber bigint,
@SecondMobNumber bigint,
@ThirdMobNumber bigint
AS
BEGIN
如果不存在(从ContactDB选择FirstMobNumber) FirstMobNumber = @ FirstMobNumber)
开始
INSERT INTO ContactDB(ContactName,ContactAddress,ContactEmail,PhoneNumber,FirstMobNumber,SecondMobNumber,ThirdMobNumber)
VALUES( @ ContactName,@ ContactAddress,@ ContactEmail,@ PhoneNumber,@ FirstMobNumber,@ SecondMobNumber,@ ThirdMobNumber)
end
END
请解决我的问题
< blockquote>我猜你的参数没有被清除。在添加参数之前添加此行:
cmd.Parameters.Clear();
如果这样无法解决您的问题,请使用 SQL Profiler [ ^ ]查看确切传递给SQL的查询。在SQL查询分析器上尝试并执行它。
This problem is creating when i Insert data SQL server with store procedure first time insert successfully but second time problem is create .
The problem is Procedure or function spUpdateDomain has too many arguments specified
my code is.
C# Code is
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "spcontactInsert";
cmd.Parameters.AddWithValue("@ContactName ", UserName.Text);
cmd.Parameters.AddWithValue("@ContactAddress ", Address.Text);
cmd.Parameters.AddWithValue("@ContactEmail ", email);
cmd.Parameters.AddWithValue("@PhoneNumber ", phone);
cmd.Parameters.AddWithValue("@FirstMobNumber ", FirstNumber.Text);
cmd.Parameters.AddWithValue("@SecondMobNumber ", SecendNumber.Text);
cmd.Parameters.AddWithValue("@ThirdMobNumber ", txt.Text);
con.Open();
cmd.Connection = con;
int i = cmd.ExecuteNonQuery();
con.Close();
SQL Store Procedure Code
ALTER PROCEDURE [dbo].[spcontactInsert]
@ContactName nvarchar(50),
@ContactAddress nvarchar(50),
@ContactEmail nvarchar(50),
@PhoneNumber nvarchar(50),
@FirstMobNumber bigint,
@SecondMobNumber bigint,
@ThirdMobNumber bigint
AS
BEGIN
if not exists(Select FirstMobNumber from ContactDB where FirstMobNumber=@FirstMobNumber)
begin
INSERT INTO ContactDB(ContactName, ContactAddress, ContactEmail,PhoneNumber,FirstMobNumber, SecondMobNumber, ThirdMobNumber)
VALUES (@ContactName,@ContactAddress,@ContactEmail,@PhoneNumber,@FirstMobNumber,@SecondMobNumber,@ThirdMobNumber)
end
END
Pleease solve my problem
I guess your parameters are not being cleared. Add this line just before adding the parameters:
cmd.Parameters.Clear();
If this doesn''t solve your problem, use an SQL Profiler[^] to see what query exactly is passed to SQL. Try and execute that on SQL Query Analyzer.
这篇关于过程或函数spUpdateDomain指定了太多参数。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!