2017-04-01 68 views
0

我有显示来自SQL数据库ASP NET SQL - 选择*从那里笔者

"select * from Log where Author=" + User.Identity.Name 

这就是当前命令我试过等于结果的问题,但不能让它的工作。

,而这个工程:

"select * from Log where Author='markus'" 

感谢您的帮助。

+2

您需要在SQL语句中的值User.Identity.Name周围引号。 –

+1

“select * from Log where Author ='”+ User.Identity.Name +“'” –

+0

我不建议这样做,但试着将字符串包装成单引号:'“select * from Log where Author ='”+ User。 Identity.Name +“'”'。这样做的标准方法是使用准备好的语句。 – GurV

回答

0

你可以用这样的单引号中的字符串:

"select * from Log where Author='" + User.Identity.Name + "'" 

但是,这样做的标准方式是使用参数化语句:

"select * from Log where Author = @Author"; 

然后使用SqlParameter将值应用于参数@Author

欲了解更多信息,请参见:

+0

不要这样做。 @GurV:你应该在序言中回答“这是怎么做不到你想做的事”,或者将SQL注入的风险带到最前沿。当他们看到您的解决方案“如何轻松运作”时,寻求快速解答的人不会在追踪链接时烦恼。 – spender

0

尝试以下操作:

"Select * from Log where Author='" + User.Identity.Name + "'" 

其实您的查询缺少的是一个字符串名称单引号..

+0

说我的用户名是''; drop table users;'? – spender

+0

@spender其实''; drop table日志; - '会更糟。 – juharr

0

您还可以使用的String.Format方法对于这种情况。 请尝试以下操作。

string query=string.Format("select * from Log where Author='{0}'",User.Identity.Name)