2015-06-02 2 views
-3

Это простой запрос, который я написал. Каким будет лучший способ параметризировать это, чтобы предотвратить SQL-инъекцию?Параметрированный SQL-запрос C#

string selectQuery = "select [ID] from [myDB].[dbo].[myTable] where [myName] = '" + user.globalUserName + "'"; 

ответ

3

Вы можете использовать @ для определения параметра, например:

string selectQuery = "select [ID] from [myDB].[dbo].[myTable] where [myName] = @username;"; 

Затем вы можете определить параметр с помощью Command.Parameters функции, например:

cmd.Parameters.Add("@username", SqlDbType.VarChar); 
cmd.Parameters["@username"].Value = user.globalusername; 

или например:

cmd.Parameters.AddWithValue("@Username", user.globalusername); 
+0

Ben, с этим я получаю «Должен объявить скалярную переменную» для имени пользователя. Я использую вариант «или как этот» – codeBoy