ASP.NET过程或函数 'sp_setSys' 需要参数 '@param',但未提供该参数。

///<summary>///执行一个SQL语句或一个存储过程,并返回受影响的记录数///</summary>///<paramname="query">SQL语句或是存... /// <summary>
/// 执行一个SQL语句或一个存储过程,并返回受影响的记录数
/// </summary>
/// <param name="query">SQL语句或是存储过程名</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(string query)
{
using (SqlConnection connection = ConnectionManager.GetConnectionObject())
{
connection.Open();
using (SqlCommand cmd = new SqlCommand(query, connection))
{
if (query.StartsWith("INSERT") | query.StartsWith("insert") | query.StartsWith("UPDATE") | query.StartsWith("update") | query.StartsWith("DELETE") | query.StartsWith("delete"))
{
cmd.CommandType = CommandType.Text;
}
else
{
cmd.CommandType = CommandType.StoredProcedure;
}
return cmd.ExecuteNonQuery();
}
}
}

存储过程
USE [db_TES]
GO
/****** Object: StoredProcedure [dbo].[sp_setSys] Script Date: 04/23/2018 13:26:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:Ben
-- Description:设置系统状态
-- =============================================
ALTER PROCEDURE [dbo].[sp_setSys]
@param nvarchar(8)
AS
BEGIN
IF (@param='关闭系统')
begin
update tb_stu set Lock='true';
update tb_worker set Lock='true';
end

ELSE
begin
update tb_stu set Lock='false';
update tb_worker set Lock='false';
end
END
展开
 我来答
handangaoyang
2018-04-23 · TA获得超过2242个赞
知道大有可为答主
回答量:2633
采纳率:88%
帮助的人:894万
展开全部
你在代码中,没有设置传递给存储过程的@param参数,所以报错。
追问
每次执行到这里就出错 return cmd.ExecuteNonQuery();
请问要怎么设置呢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式