gpt4 book ai didi

c# - 如何从标量值函数正确返回 count(*) 值

转载 作者:可可西里 更新时间:2023-11-01 11:46:08 25 4
gpt4 key购买 nike

每次我执行我的代码时,我都会从方法中得到“false”

 public bool exists(int vpisna, string geslo)
{
bool a = false;
Uspeh = true;


cmd = new SqlCommand("SELECT dbo.fnExists(@Vpisna,@Geslo)", povezava);
cmd.Parameters.AddWithValue("@Vpisna", vpisna);

cmd.Parameters.AddWithValue("@Geslo", geslo);

try
{
povezava.Open();
int result =(int)cmd.ExecuteScalar();


if (result==1)
{
a = true;
}
}
catch (Exception e)
{
ex = e;
}
finally
{
povezava.Close();
}

return a;
}

我的标量值函数:

[dbo].[fnExists](
@Vpisna int,
@Geslo nvarchar(40)
)
RETURNS INT AS BEGIN

DECLARE @a int

SET @a = (
SELECT
COUNT(*)
FROM
Student
WHERE
ID = @Vpisna
AND
Geslo = CONVERT( nvarchar(40), HashBytes('SHA1', @Geslo ), 2 )
)

RETURN @a
END

每次我得到一个错误的结果,即使我试图在标量值函数内部操作数据。当我在没有函数的情况下尝试对真实数据执行 SELECT 语句时,它在 SQL Management Studio 中运行。

最佳答案

我认为你的代码系列是错误的。在创建 sql 命令之前必须打开 sql 连接或必须从 sqlcommand 打开。使用这个;

        SqlConnection cnn = new SqlConnection("sql-connection-string");
cnn.Open();
SqlCommand cmd = new SqlCommand("select 1", cnn);

        SqlConnection cnn = new SqlConnection("sql-connection-string");
SqlCommand cmd = new SqlCommand("select 1", cnn);
cmd.Connection.Open();

关于c# - 如何从标量值函数正确返回 count(*) 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44415500/

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