Pass-by-Parameter: String sql = "select count(*) from zhuce, wo username=@username und pwd=@pwd und type = @type"; SqlConnection conn = neuer SqlConnection(Common.Context.SqlManager.CONN_STRING); Conn. Open();
SqlCommand cmd = neuer 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"]. Wert = Benutzername; cmd.Parameters["@pwd"]. Wert = pwd; cmd.Parameters["@type"]. Wert = Leistung. Text;
int count = Convert.ToInt32(cmd.ExecuteScalar());
Conn. Close();
Ich bin mir nicht sicher, welche Datenbank du verwendest. Hier ist ein Stück SQL-Server-Code Das Wichtigste, um Injektionsangriffe zu verhindern, ist nicht, Splicing-Parameter zu verwenden, sondern Parameterzuweisungsmethoden. SqlConnection conn=...... SqlCommand comm =new SqlCommand ("select count (*) aus Table1, wobei Name = @loginame und Passwort = @loginpassword",conn); Comm. Parameters.Add (neuer SqlParameter("@loginame",SqlDbType.NVarchar,20); Comm. Parameters["@loginame"].value=TextBox1.Text; Comm. Parameters.Add (neuer SqlParameter("@loginpassword",SqlDbType.NVarchar,20); Comm. Parameters["@loginpassword"].value=TextBox2.Text; Comm. Connection.Open(); int mark=(int)comm. ExecuteScalar()
//--mark用于标记 |