【发布时间】:2010-09-07 19:45:10
【问题描述】:
我正在为用 ASP.NET 设计的新闻页面开发标签系统。对于系统,我需要一个 TagExists 方法来检查数据库中的标签。我写的存储过程如下。
ALTER PROCEDURE [dbo].[Tags_TagExists](
@Tag varchar(50))
AS
BEGIN
If (EXISTS(SELECT * FROM dbo.Tags WHERE LOWER(@Tag) = LOWER(Tag)))
RETURN 1
ELSE
RETURN 0
END
当我调用此方法时,总是返回 0。我正在使用下面的代码来调用方法
Public Shared Function TagExists(ByVal name As String) As Boolean
Dim result As Boolean
Using conn As SqlConnection = New SqlConnection(ConnectionString)
Dim cmd As New SqlCommand("Tags_TagExists", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@Tag", name)
conn.Open()
result = Convert.ToBoolean(cmd.ExecuteScalar())
conn.Close()
End Using
Return result
End Function
我已经尝试切换过程,如果标签存在则返回 0,如果不存在则返回 1,尽管测试条件完全相同,它仍然返回 0。我还返回了实际的选择查询,它抱怨标签“新闻”(我的测试项目)在执行时不是一个 int,表明选择本身肯定是正确形成的。
如果有人能对此有所了解,谢谢 迈克尔
【问题讨论】:
标签: asp.net sql vb.net stored-procedures