C# 根据其当前ip地址检索用户名SQL

C# 根据其当前ip地址检索用户名SQL,c#,sql,visual-studio-2010,sql-server-2008,C#,Sql,Visual Studio 2010,Sql Server 2008,我试图根据他登录时存储的登录ip地址选择用户名 我有两张桌子 使用者 会议 这是我的sql语句 Select users.username from users,sessions where user_id = se_user AND se_ip = '" + HttpContext.Current.Request.UserHostAddress + "'; 我正在数据源配置的DetailsView中使用此sql语句,但它似乎不起作用 问题是什么?首先,您应该使用正确的连接,而不是旧版本。 看

我试图根据他登录时存储的登录ip地址选择用户名

我有两张桌子

使用者 会议 这是我的sql语句

Select users.username from users,sessions where user_id = se_user AND se_ip = '" + HttpContext.Current.Request.UserHostAddress + "';
我正在数据源配置的DetailsView中使用此sql语句,但它似乎不起作用


问题是什么?

首先,您应该使用正确的连接,而不是旧版本。 看起来你一直在用同一个字符串比较seu-ip。若你们用C语言定义那个条语句,我认为你们的引号有问题。在SQL简单引号中定义字符串,在C双引号中定义字符串。因此,在C语言中,您应该这样定义查询:

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

首先,您应该使用正确的连接,而不是旧版本。 看起来你一直在用同一个字符串比较seu-ip。若你们用C语言定义那个条语句,我认为你们的引号有问题。在SQL简单引号中定义字符串,在C双引号中定义字符串。因此,在C语言中,您应该这样定义查询:

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

我会小心使用IP地址,因为大多数家庭或办公室内的用户都分配了动态IP地址。在一段时间内,这很可能是相同的,但如果他们碰巧得到一个新地址调制解调器复位,脱机一段时间,等等,那么你就不能再信任该IP地址


我假设您已经将其合并,但万一有人出现并决定使用此想法,他们应该知道。

我会小心使用IP地址,因为大多数家庭或办公室内的用户都分配了动态IP地址。在一段时间内,这很可能是相同的,但如果他们碰巧得到一个新地址调制解调器复位,脱机一段时间,等等,那么你就不能再信任该IP地址



我假设您已经将其纳入其中,但万一有人出现并决定使用此想法,他们应该知道这一点。

对我来说就像是MS认证考试问题;-。您是否尝试使用示例IP手动运行SQL查询?您是否尝试调试point并查看HttpContext.Current.Request.UserHostAddress的值是多少?您使用的是什么数据库引擎?、MySQL、SQL Server、Oracle等…不起作用不为SO用户提供任何帮助您解决问题的起点。什么不起作用?你有什么结果吗?是编译吗?UserHostAddress是否为空?@shoban否这不是MS认证考试问题,我正在本地做一个小项目,试图学习c和sql,当我运行页面时,细节视图不会出现,因此没有错误但没有结果,是的,我使用相同的命令插入当前ip:-你尝试了我在评论中发布的内容吗?手动?追踪点?有什么吗?对我来说就像是MS认证考试的问题;-。您是否尝试使用示例IP手动运行SQL查询?您是否尝试调试point并查看HttpContext.Current.Request.UserHostAddress的值是多少?您使用的是什么数据库引擎?、MySQL、SQL Server、Oracle等…不起作用不为SO用户提供任何帮助您解决问题的起点。什么不起作用?你有什么结果吗?是编译吗?UserHostAddress是否为空?@shoban否这不是MS认证考试问题,我正在本地做一个小项目,试图学习c和sql,当我运行页面时,细节视图不会出现,因此没有错误但没有结果,是的,我使用相同的命令插入当前ip:-你尝试了我在评论中发布的内容吗?手动?追踪点?有什么吗?还是没有值,我想注意,当我存储ip地址时,我存储了se_ip VARCHAR,这有什么区别吗?应该没有什么区别,您能在SQL Server探查器中看到您实际执行的查询吗?我试图运行SQL Server中编写的SQL代码,但更改了se_ip Select users.username from users JOIN[sessions]的值。[USER_ID]=[sessions]。se_USER where se_ip=CONNECTIONPROPERTY'client_net_address',仍然没有返回值…我的意思是,使用SQL Server Profiler,您可以监视服务器中执行的每个查询,因此您应该尝试执行您的C代码并查看使用了什么SQL语句。我使用的是SQL Server Express,我遵循MSDN了解如何打开它,但没有这样的东西,仍然没有值,我想指出的是,当我存储ip地址时,我存储了se_ip VARCHAR,这有什么区别吗?它应该没有任何区别,你能在SQL Server探查器中看到你实际执行的查询吗?我试图运行编写的SQL代码,但在SQL Server中,但我更改了se_ip Select users.username from users JOIN的值用户上的[sessions]。[USER\u ID]=[sessions]。se\u USER其中se\u ip=CONNECTIONPROPERTY'client\u net\u address';仍然没有返回值…我的意思是使用SQL Server Profiler y
您可以监视服务器中执行的每个查询,因此您应该尝试执行C代码并查看使用了什么sql语句。我使用的是sql server Express,我跟随MSDN了解如何打开它,但没有这样的事情,是的,我知道ip地址每7天更改一次,我想这取决于DHCP设置,但在我的示例中,我讨论的是一般的方法,谢谢:是的,我知道ip地址每7天更改一次,我认为这取决于DHCP设置,但在我的示例中,我讨论的是一般的方法,谢谢: