根据他当前的ip地址SQL检索用户名

时间:2010-12-15 18:21:22

标签: c# sql visual-studio-2010 sql-server-2008

我正在根据他登录时存储的登录IP地址尝试Select用户名,

我有两张桌子

  1. 用户
  2. 会话
  3. 这是我的sql语句

    Select users.username from users,sessions where user_id = se_user AND se_ip = '" + HttpContext.Current.Request.UserHostAddress + "';
    

    我在DetailsView的{​​{1}}内使用此sql语句,但它似乎不起作用

    问题是什么?

2 个答案:

答案 0 :(得分:3)

嗯,首先,您应该使用正确的JOIN而不是旧版本。 看起来你总是将se_ip与相同的字符串进行比较。如果您在C#中定义该语句,我认为您的引号有问题。在SQL中,简单引号'定义一个字符串,在C#doble引号"中定义一个字符串。所以在C#中你应该像这样定义你的查询:

"Select users.username 
from users JOIN [sessions] 
ON users.[USER_ID] = [sessions].se_user 
where se_ip = '" + HttpContext.Current.Request.UserHostAddress + '"

答案 1 :(得分:2)

我会小心使用IP地址,因为家中或办公室内的大多数用户都分配了动态IP地址。在一段时间内它很可能是相同的,但如果它们碰巧得到一个新地址(调制解调器重置,离线一段时间等),那么你就不能再相信那个IP地址了。

我假设你已经加入了这个,但万一有人出现并决定使用这个想法,他们应该知道。