我有以下带有一个输入参数和一个输出参数的 SQL 存储过程。
CREATE PROCEDURE [dbo].[spCanUserEdit]
(
@username nvarchar(255)
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CanEdit bit
SELECT
@CanEdit = CanUserEdit
FROM tblUsers
WHERE username = LOWER(@username)
RETURN SELECT @CanEdit
END
GO
在上面的存储过程中,CanUserEdit
列tblUsers
是位类型列,默认值为 0。现在,当我在 Management Studio 中执行此过程时,它运行良好,但是当我command.ExecuteScalar()
在 C# 代码中使用时,它总是返回null
。谁能告诉我我在这里做错了什么。
以下是我的 C# 方法
public static bool CanUserEdit(string userName)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[Constants.ConnectionStringName].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "spCanUserEdit";
cmd.Connection = conn;
cmd.Parameters.Add(new SqlParameter("@username", userName));
conn.Open();
bool canEdit = (bool)cmd.ExecuteScalar();
return canEdit;
}
}
}
亲切的问候