2015-03-02 99 views
1

使用我的下列代码获取问题。我在下面创建的是,当用户登录到我的网站时,他们会打这个aspx页面,这将检查您是否是group_id 1001的一部分。从数据库的角度来看,我确保我的测试登录用户名在我的数据库中,并且使用group_ID 1001,但是我错误地认为我没有group_id。我想也许我的SQL查询尝试@username'" & username & "',但仍然返回false。没有看到任何其他问题,但希望看到是否有人抓住我的错误的地方。我的钱是在某个地方的SQL查询,但我没有做任何修复这个问题。ASP.NET 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> 
+0

将strSQL构建好后,直接在数据库上运行。 – Nikitesh 2015-03-02 09:11:33

回答

0

布尔值的默认值为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 
+0

你da da man 5uperdan它的工作,真的很感激这一点。即时通讯仍然学习很多试图让这个工作。 – 2015-03-02 10:51:12

+0

@DanielEllison谢谢!在.Net框架中,您已经为成员和团体以及其他可能值得检查的成员和团体做了很多工作。任何搜索asp.net会员资格都会导致一系列的结果,而官方的asp.net网站有专门的部分:http://www.asp.net/identity – 5uperdan 2015-03-02 10:59:46