Parametr przejściowy: string sql = "select count(*) z zhuce gdzie username=@username i pwd=@pwd oraz type = @type"; SqlConnection conn = nowy SqlConnection(Common.Context.SqlManager.CONN_STRING); Conn. Open();
SqlCommand cmd = nowy 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"]. Value = nazwa użytkownika; cmd.Parameters["@pwd"]. Wartość = pwd; cmd.Parameters["@type"]. Wartość = moc. Tekst;
int count = Convert.ToInt32(cmd.ExecuteScalar());
Conn. Close();
Nie jestem pewien, jakiej bazy danych używasz Oto fragment kodu SQL-Server Najważniejszym sposobem zapobiegania atakom z wtryskiem jest nie stosowanie parametrów splicingu, lecz stosowanie metod przypisywania parametrów. SqlConnection conn=...... SqlCommand comm = nowy SqlCommand ("wybierz count (*)z Tabeli1, gdzie imię = @loginame a hasło = @loginpassword",conn); komunikator. Parameters.Add(new SqlParameter("@loginame",SqlDbType.NVarchar,20); komunikator. Parametry["@loginame"].value=TextBox1.Text; komunikator. Parameters.Add(new SqlParameter("@loginpassword",SqlDbType.NVarchar,20); komunikator. Parametry["@loginpassword"].value=TextBox2.Text; komunikator. Connection.Open(); int mark=(int)comm. ExecuteScalar()
//--mark用于标记 |