Escape (' ) symbol in Textbox for asp.net c#Лучший способ отладки параметризованный запрос в C#
Основываясь на вопрос в посте выше, большинство людей предположили, что «параметризованных запросов» является лучшим решением, чтобы избежать SQL-инъекции.
Ниже мой код с помощью SQL-инъекции
public DataSet checkemp(string user)
{
strsql = "SELECT * from employee where employeeid = @userid";
SqlConnection con = new SqlConnection(connectionString);
SqlDataAdapter da = new SqlDataAdapter(strsql, connectionString);
da.SelectCommand.Parameters.Add("@userid", SqlDbType.VarChar, 50).Value = user;
// pretend the user name is "Micheal"
con.Open();
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
con.Dispose();
return ds;
}
Во время отладки, я могу получить только запрос «SELECT * от сотрудника, где EmployeeID = @userid», если я указываю на «strsql» ярлык, но не «SELECT * от сотрудника, где EmployeeID =„Мичил“
Любое решение предложил решить этот вопрос и сделать его наиболее эффективность спасибо всем
Простой ответ: нет возможности просмотреть команду как «SELECT» от сотрудника, где employeeid = «Micheal'.', удерживая« strsql ». –
Вы также можете использовать профилировщик для просмотра фактического оператора sql выполненный в базе данных – Yogi
, если вы хотите проверить запрос, почему бы вам не сделать это на SQL-сервере? – woodykiddy