gpt4 book ai didi

c# - 存储过程参数名称是否必须与从 C# 传递的参数匹配?

转载 作者:行者123 更新时间:2023-11-30 23:02:53 24 4
gpt4 key购买 nike

我有如下存储过程,

CREATE PROCEDURE SP_Test()
@Name VARCHAR(10),
@Dept VARCHAR(10)
AS
BEGIN
...
END

我正在像这样从 C# 调用存储过程:

SqlCommand scCommand = new SqlCommand("SP_Test", MysqlCon);
scCommand.CommandType = CommandType.StoredProcedure;

scCommand.Parameters.Add("@UserName", SqlDbType.VarChar, 10).Value = "SomeVal";
scCommand.Parameters.Add("@Department", SqlDbType.VarChar, 10).Value = "SomeVal";
...
...

这里我给的name和procedure parameter name不一样,会不会报错?

最佳答案

是的,必须与存储过程参数中的名称相同,因为编译器会根据名称映射参数,因此如果您提供不同的名称,它将无法映射值

所以你的 C# 代码应该是这样的

scCommand.Parameters.Add("@Name", SqlDbType.VarChar, 10).Value = "SomeVal";
scCommand.Parameters.Add("@Dept", SqlDbType.VarChar, 10).Value = "SomeVal";

关于c# - 存储过程参数名称是否必须与从 C# 传递的参数匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50227717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com