C# 不在表中插入值
我已经编写了一个用于在表中插入值的存储过程。请参阅SP以供参考:-C# 不在表中插入值,c#,sql,asp.net,stored-procedures,sqlcommand,C#,Sql,Asp.net,Stored Procedures,Sqlcommand,我已经编写了一个用于在表中插入值的存储过程。请参阅SP以供参考:- ALTER PROCEDURE [dbo].[AddingpagesinGrid] (@page_title NVARCHAR(100), @page_description NVARCHAR(max), @meta_title NVARCHAR(255),
ALTER PROCEDURE [dbo].[AddingpagesinGrid] (@page_title NVARCHAR(100),
@page_description NVARCHAR(max),
@meta_title NVARCHAR(255),
@meta_keywords NVARCHAR(255),
@meta_description NVARCHAR(1000),
@Active BIT)
作为
开始
不计数
BEGIN
INSERT INTO [tbl_pages]
([page_title],
[page_description],
[meta_title],
[meta_keywords],
[meta_description],
[active])
VALUES ( @page_title,
@page_description,
@meta_title,
@meta_keywords,
@meta_description,
@Active)
END
SELECT [page_title],
[page_description],
[meta_title],
[meta_keywords],
[meta_description],
[active]
FROM tbl_pages
结束
去
另请参见后面的代码:-
protected void btnAdd_Click(object sender, EventArgs e)
{
conn.Open();
var cmd = new SqlCommand("AddingPagesInGrid", conn);
cmd.Parameters.AddWithValue("@page_title", txtPageTitle.Text);
cmd.Parameters.AddWithValue("@page_description", txtPagedesc.Text);
cmd.Parameters.AddWithValue("@meta_title", txtmetatitle.Text);
cmd.Parameters.AddWithValue("@meta_keywords", txtMetakeywords.Text);
cmd.Parameters.AddWithValue("@meta_description", ddlActiveInactive.SelectedIndex);
cmd.ExecuteNonQuery();
conn.Close();
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('User details saved sucessfully');window.location ='csrpage.aspx';", true);
}
它不起作用,给我错误的感觉
“过程或函数“AddingPagesInGrid”需要参数“@page\u title”,但未提供该参数。”我认为您忘记设置,并且您的程序认为您的
“AddingPagesInGrid”
是命令类型的默认值
只需添加
cmd.CommandType = CommandType.StoredProcedure;
并用于处理SqlConnection
和SqlCommand
using(SqlConnection conn = new SqlConnection(conString))
using(SqlCommand cmd = conn.CreateCommand())
{
}
请不要使用AddWithValue
方法。有时可能会产生意想不到的结果。使用方法或其重载
阅读:什么是txtPageTitle.Text
?内容是指数据类型?不,是指内容。它保存的值。这些值采用文本格式Use CommandType=CommandType.StoredProcess;我在“var cmd=new SqlCommand”(“AddingPagesInGrid”,conn);”这一行之后添加了现在我发现错误,因为过程或函数“AddingPagesInGrid”需要参数“@Active”,但未提供该参数。您能描述一下吗please@RahulSutar您的存储过程有一个名为@Active
的参数,但您的SqlCommand
没有该参数。@RahulSutar您始终可以先阅读文档。比如,cmd.Parameters.Add(“@page\u title”,SqlDbType.NVarChar).Value=txtPageTitle.Text代码>