【发布时间】:2015-08-14 06:51:11
【问题描述】:
出现错误 -
过程或函数“sp_InsertContentForhomepage”需要参数 '@company',未提供。
我正在尝试插入两个值...我是使用 sp 的新手。
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ShoppingConnectionString"].ConnectionString);
con.Open();
string text = FCKeditor.Value;
string company = txtCompany.Text.Trim();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand("sp_InsertContentForhomepage", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(@text, text);
cmd.Parameters.AddWithValue(@company,company);
cmd.ExecuteNonQuery();
con.Close();
我的存储过程:-
create PROCEDURE sp_InsertContentForhomepage
@company VARCHAR(50),
@text VARCHAR(max)
AS
BEGIN
INSERT INTO tbl_HomepageContent (company, text)
VALUES (@company,@text)
END
【问题讨论】:
-
您可以运行 SQL Profiler 并检查您的代码传递给 SP 的值吗?
-
缺少引号?
cmd.Parameters.AddWithValue("@company",company); -
@BrendanGreen 确实...如果 OP 对变量使用非字符串类型会很明显...可能作为 stackoverflow.com/questions/254669/… 的副本关闭 :)(也更像是“印刷错误”)。
-
@RahulSingh 我不太确定你是什么意思
@company不是字符串(因为它与没有@的company相同):AddWithValue(@company,company);和AddWithValue("@company",company);是完全有效的 C# 语句(从string company;开始)。我不确定你认为哪个版本不会编译。 -
@RahulSingh 但他的代码示例中有一个名为
company的变量。如果变量company包含值“test”,则此AddWithValue(@company, company)实际上与AddWithValue("test", company)相同。见msdn.microsoft.com/en-us/library/aa664670.aspx
标签: c# asp.net sql-server-2008 stored-procedures