Mysql ASP.NET SQL查询未返回预期结果
我的以下代码有问题。我在下面创建的基本内容是,当用户登录到我的站点时,他们将点击此aspx页面,这将检查您是否属于Mysql ASP.NET SQL查询未返回预期结果,mysql,asp.net,sql-server,vb.net,iis,Mysql,Asp.net,Sql Server,Vb.net,Iis,我的以下代码有问题。我在下面创建的基本内容是,当用户登录到我的站点时,他们将点击此aspx页面,这将检查您是否属于group\u id1001。从数据库的角度来看,我确保我的测试登录用户名在我的数据库中有group\u ID1001,但返回时认为我没有group\u ID。我想可能是我的SQL查询尝试了@username到'“&username&',但仍然返回false。没有看到任何其他问题,但希望看到是否有人发现了我的错误。我的钱在某个地方的SQL查询上,但我什么也没做,因为它解决了问题 &l
group\u id
1001。从数据库的角度来看,我确保我的测试登录用户名在我的数据库中有group\u ID
1001,但返回时认为我没有group\u 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>
子页_加载()
Dim username As String=Convert.ToString(User.Identity.Name.Substring(User.Identity.Name.IndexOf(“\”+1))
作为MySqlConnection的Dim dbconn
将mySqlCommand设置为mySqlCommand
作为整数的Dim计数器
Dim IsingGroup作为布尔值
Dim strSQL As String=“从tbl_staff中选择COUNT(*),其中username=@username和group_id=1001;”
dbconn=New MySqlConnection(“服务器=localhost;数据库=imc\u目录\u工具;用户=directory\u Admin;端口=3306;密码=IMCisgreat2014;”)
dbconn.Open()
mySqlCommand=新的mySqlCommand(strSQL,dbconn)
mySqlCommand.Parameters.AddWithValue(“@username”,username)
计数器=mySqlCommand.ExecuteScalar()
如果ISingGroup=计数器>0,则
回答。写下(“您是组_id 1001的一部分”)
其他的
回答。写下(“您不是组_id 1001的一部分”)
如果结束
dbconn.Close()
端接头
布尔值的默认值为false。因此,在您的声明之后:
Dim isInGroup As Boolean
IsingGroup=False
这意味着您的代码
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
在构建完成后使用strSQL,并尝试直接在DB上运行它。“我仍然在努力学习如何让它发挥作用。”丹尼利森,谢谢!在.Net框架中,已经为您做了很多关于成员资格、组和其他方面的工作,如果您还没有这样做的话,这些工作可能值得一看。任何对asp.net成员资格的搜索都会产生大量结果,asp.net官方网站有一个专门的部分: