过程或函数“login”需要参数“@Abc”,但未提供该参数
4个小时的搜索和尝试,没有用我已经提供了这个参数(复制/粘贴),给程序的参数数量是相同的程序和顺序。
@Abc是一个输出参数。
存储过程定义:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[login]
(
@Abc int output,
@firstname varchar(255) output,
@lastname varchar(255) output,
@Email varchar(255),
@pass varchar(255)
)
As
begin
if not exists (select Email from user_1 where email=@email)
select @Abc = 0
else begin
if not exists (
select Email from user_1 where email =@Email and password = @pass
)
select @Abc = 1
else
select @Abc = 2,@firstname = u.first_name ,@lastname=u.last_name from user_1 u where u.email = @email
end
end
调用存储过程的代码:
myCon.Open();
TextBox username = UserName;
TextBox password = Password;
SqlCommand myCommand = new SqlCommand("login", myCon);
SqlParameter count= myCommand.Parameters.Add("@Abc", SqlDbType.Int);
count.Direction = ParameterDirection.Output;
SqlParameter fnp = myCommand.Parameters.Add("@firstname", SqlDbType.VarChar,255);
fnp.Direction = ParameterDirection.Output;
SqlParameter lnp = myCommand.Parameters.Add("@lastname", SqlDbType.VarChar, 255);
lnp.Direction = ParameterDirection.Output;
myCommand.Parameters.AddWithValue("@Email",username.Text);
myCommand.Parameters.AddWithValue("@pass", password.Text);
myCommand.ExecuteNonQuery();
myCon.Close();
你忽略了:
myCommand.CommandType = CommandType.StoredProcedure;
因此,发送到DB的命令是错误的sp_executeSQL
调用,而不是所需的exec登录
仅供参考还有一个较短的语法:
myCommand.Parameters.Add("@Abc", SqlDbType.Int).Direction = ParameterDirection.Output;
问题内容: 我正在尝试通过调用存储过程将数据插入SQL Server数据库中,但出现错误 过程或函数“插入”期望参数“ @Emp_no”,但未提供 我的存储过程称为。我已经对其进行了彻底检查,并且没有丢失任何参数,也已经通过使用标签对其进行了检查。标签显示该值,但我不知道为什么会收到错误消息。 我的代码是 并且存储过程是 请帮我。提前致谢。 问题答案: 您需要使用: 或其他数据类型: 替换使用字符
我对C#相当陌生,我正在尝试设置对数据库中一个存储过程的调用,该过程只接受一个参数。 我得到错误“过程或函数'SP_getName'需要参数'@username',但未提供该参数。” 当我向存储过程提供参数并通过SQL management studio运行它时,它工作正常。 然而,当我尝试调用它时,错误在于我如何传递参数,但我无法发现问题是什么。 如果您能帮我发现错误,我们将不胜感激! 我也试过
问题内容: 我是在asp.net上的新手,后面有vb.code 我正在尝试从sql获取价值 我的密码 错误是 我已经尝试执行商店程序 并返回0非空值。 提前致谢! 问题答案: 尝试通过互换两条线。 如果是受支持的过程,还有一件事情,您应该在
过程和函数是模式对象,包含一组保存在服务器上的 SQL 语句。在主窗口中,点击 “函数”来打开函数的对象列表。 函数向导 在对象工具栏点击 “新建函数”。“函数向导”会弹出,让你简易地创建过程或函数。 指定常式的“名” 并选择常式的类型:“过程”或“函数”。 定义参数。在相应的列中设置“名”、“类型模式”、“类型”、“默认值”、“输出”或/和“只读”。 如果你是创建一个函数,从列表中选择“函数类型
过程或函数是模式对象,包含一组保存在服务器上的 SQL 语句。PostgreSQL 11 或以上支持过程。在主窗口中,点击 “函数”来打开函数的对象列表。 函数向导 在对象工具栏点击 “新建函数”。“函数向导”会弹出,让你简易地创建函数。 选择例程的类型:“过程”或“函数”。 定义参数。在相应的列中设置“模式”、“类型模式”、“类型”、“名”和“默认值”。 如果你是创建一个函数,从列表中选择“模式
过程和函数是模式对象,包含一组保存在服务器上的 SQL 语句。在主窗口中,点击 “函数”来打开函数的对象列表。 函数向导 在对象工具栏点击 “新建函数”。“函数向导”会弹出,让你简易地创建过程或函数。 指定例程的“名” 并选择例程的类型:“过程”或“函数”。 定义参数。在相应的列中设置“名”、“类型”、“模式”和“默认值”。 如果你是创建一个函数,从列表中选择“返回类型”。 【提示】一旦取消勾选“