How to prevent a SQL Injection escaping strings
You need to use parameters. Well dont have to but would be preferable.
SqlParameter[] myparm = new SqlParameter[2];
myparm[0] = new SqlParameter("@User",user);
myparm[1] = new SqlParameter("@Pass",password);
string comando = "SELECT * FROM ANAGRAFICA WHERE E_MAIL=@User AND PASSWORD_AZIENDA=@Pass";
Don't escape the strings to start with - use a parameterized query. Benefits of this over escaping:
- The code is easier to read
- You don't have to rely on getting the escaping correct
- It's possible that there are performance improvements (DB-specific etc)
- It separates "code" (the SQL) from the data, which is just good sense logically
- It means you don't need to worry about data formats for things like numbers and dates/times.
The docs for SqlCommand.Parameters
give a good, complete example.