ASP.NET SQL 查询未返回预期结果
Posted
技术标签:
【中文标题】ASP.NET SQL 查询未返回预期结果【英文标题】:ASP.NET SQL query not returning expected results 【发布时间】:2015-05-02 13:51:01 【问题描述】:我的以下代码出现问题。我在下面创建的基本内容是,当用户登录到我的网站时,他们将点击这个 aspx 页面,这将检查您是否是 group_id
1001 的一部分。从数据库的角度来看,我确保我的测试登录用户名在我的数据库中,group_ID
1001 但返回错误,认为我没有group_id
。我想这可能是我的 SQL 查询尝试了 @username
到 '" & username & "'
但仍然返回 false。没有看到任何其他问题,但希望看看是否有人发现我的错误在哪里。我的钱在某处的 SQL 查询上,但我没有做任何事情来解决这个问题。
<%@ import namespace="System.Data" %>
<%@ import namespace="mysql.data.MySqlclient" %>
<%@ import namespace="MySql.data.MySqlclient.MySqlConnection" %>
<Script runat="server">
Sub page_load()
Dim username As String = Convert.ToString(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\") + 1))
Dim dbconn As MySqlConnection
Dim mySqlCommand As MySqlCommand
Dim counter As Integer
Dim isInGroup As Boolean
Dim strSQL As String = "SELECT COUNT(*) FROM tbl_staff WHERE username = @username AND group_id = 1001;"
dbconn = New MySqlConnection("server=localhost;database=imc_directory_tool;user=Directory_Admin;port=3306;password=IMCisgreat2014;")
dbconn.Open()
mySqlCommand = New MySqlCommand(strSQL, dbconn)
mySqlCommand.Parameters.AddWithValue("@username", username)
counter = mySqlCommand.ExecuteScalar()
If isInGroup = counter > 0 Then
Response.Write("You are part of group_id 1001")
Else
Response.Write("You are not part of group_id 1001")
End If
dbconn.Close()
End Sub
</Script>
【问题讨论】:
构造后取strSQL,直接在DB上运行试试。 【参考方案1】:布尔值的默认值为 false。所以在你的声明之后:
Dim isInGroup As Boolean
isInGroup = 假
这意味着你的代码
If isInGroup = counter > 0 Then
Response.Write("You are part of group_id 1001")
Else
Response.Write("You are not part of group_id 1001")
End If
其实是:
If False = (counter > 0) Then
Response.Write("You are part of group_id 1001")
Else
Response.Write("You are not part of group_id 1001")
End If
当你的用户名和组组合在数据库中找到时
(counter > 0) = True
我不知道您为什么要使用 isInGroup 布尔值,但如果您需要将它用于其他代码,那么我建议您先设置布尔值,然后在需要的地方进行测试。
isInGroup = counter > 0
If isInGroup = True Then
Response.Write("You are part of group_id 1001")
Else
Response.Write("You are not part of group_id 1001")
End If
【讨论】:
you da man 5uperdan 成功了,非常感谢。我还在学习很多东西,试图让它发挥作用。 @DanielEllison 谢谢!在 .Net 框架中已经为您完成了很多关于成员资格和组的工作,如果您还没有,这些工作可能值得一试。任何对 asp.net 会员资格的搜索都会得到大量结果,并且 asp.net 官方网站有一个专门的部分:asp.net/identity以上是关于ASP.NET SQL 查询未返回预期结果的主要内容,如果未能解决你的问题,请参考以下文章
ASP.Net Razor 语法显示 SQL SelectQuery 值
ASP.NET + SqlDataAdapter 没有返回正确的查询结果
如何在 C# Asp.net 中将 SELECT sql 查询结果保存在数组中