Passer par paramètre : string sql = « select count(*) from zhuce where username=@username et pwd=@pwd et type = @type » ; SqlConnection conn = nouveau SqlConnection(Common.Context.SqlManager.CONN_STRING) ; Conn. Open() ;
SqlCommand cmd = nouveau SqlCommand(sql, conn) ; cmd.Parameters.Add(« @username »,SqlDbType.VarChar,30) ; cmd.Parameters.Add(« @pwd »,SqlDbType.VarChar,30) ; cmd.Parameters.Add(« @type »,SqlDbType.VarChar,10) ; cmd.Parameters["@username"]. Valeur = nom d’utilisateur ; cmd.Parameters["@pwd"]. Valeur = pwd ; cmd.Parameters[« @type »]. Valeur = puissance. SMS;
compte d’ints = Convert.ToInt32(cmd.ExecuteScalar()) ;
Conn. Close() ;
Je ne sais pas quelle base de données vous utilisez Voici un morceau de code SQL-Server La chose la plus importante pour prévenir les attaques par injection n’est pas d’utiliser des paramètres de splicing, mais d’utiliser des méthodes d’attribution de paramètres. SqlConnection conn=...... SqlCommand comm =new SqlCommand (« select count (*)from Table1 où nom = @loginame et mot de passe = @loginpassword »,conn) ; comm. Parameters.Add(new SqlParameter(« @loginame »,SqlDbType.NVarchar,20) ; comm. Paramètres["@loginame"].value=TextBox1.Text ; comm. Parameters.Add(new SqlParameter(« @loginpassword »,SqlDbType.NVarchar,20) ; comm. Paramètres["@loginpassword"].value=TextBox2.Text ; comm. Connexion.Open() ; int mark=(int)comm. ExécuteScalar()
//--mark用于标记 |