Your SQL does not have spaces in correct places.
Also see my sample below to see a better way to select query data using user input in SQL to avoid SQL injection:
string userEmail = "test@email.com", userPassword = "abc123";
Console.WriteLine("SELECT ShopperID" + "FROM Shopper" + "WHERE Email = '" + "a@b.com" + "'" + "AND Passwd = '" + "password" + "'");
string sql = "SELECT ShopperID FROM Shopper WHERE Email = {0} AND Passwd = {1}";
string emailParameter = "@Email", passwordParameter = "@Password";
string formattedSql = string.Format(sql,emailParameter,passwordParameter);
Console.WriteLine(formattedSql);
SqlCommand cmd = new SqlCommand(formattedSql);
cmd.Parameters.Add(new SqlParameter(emailParameter,userEmail));
cmd.Parameters.Add(new SqlParameter(passwordParameter,userPassword));
SqlDataReader dr = cmd.ExecuteReader();