【发布时间】:2017-01-30 12:48:42
【问题描述】:
我尝试从两个不同的文本框中将两个数据插入同一列。例如,一个人有两个电话号码。在这种情况下,人员和电话号码是两个单独的表,电话号码表只有一列来存储电话号码。 我尝试使用存储过程插入数据。 这是存储过程代码。
ALTER Procedure [dbo].[Ph]
@name varchar(200),
@phonenumber varchar(200)
AS
Begin
Declare @P_ID int
insert into person(Name)
values (@name)
SELECT P_ID = SCOPE_IDENTITY()
insert into phonenumber(PhoneNumber, P_ID)
values (@phonenumber, @P_ID)
RETURN
END
但是,当我尝试插入数据时,会出现一条错误消息,引用“Procedure or function Ph has too many arguments specified.”。这是插入数据的 C# 代码。
using (SqlConnection con = new SqlConnection("Data Source=YAMADA;Initial Catalog=testtest;Integrated Security=True"))
{
using (SqlCommand cmd = new SqlCommand("Ph", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = TextBox1.Text;
cmd.Parameters.Add("@phonenumber", SqlDbType.Int).Value = TextBox2.Text;
cmd.Parameters.Add("@phonenumber", SqlDbType.Int).Value = TextBox3.Text;
con.Open();
cmd.ExecuteNonQuery();
}
}
有人可以帮我解决这个错误吗? 提前致谢。
【问题讨论】:
-
您提供的参数比需要的多。
-
如果您需要两个电话号码作为过程的输入,则为这些号码定义 2 个过程参数...
ALTER Procedure [dbo].[Ph] @name varchar (200), @phonenumber varchar(200), @phonenumber2 varchar(200) -
那么如何将其存储在同一列下? @user1429080
标签: c# asp.net sql-server stored-procedures