2017-04-01 69 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)